drm/ttm: Fix a theoretical race
The ttm_mem_evict_first function could theoretically drop the lru lock without retrying if a reservation from off the LRU list ended up waiting. However, since currently there are no users that could cause a wait in that situation so this is not suitable for stable Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
a16d4f8601
commit
7bc17a7837
1 changed files with 2 additions and 2 deletions
|
@ -817,11 +817,11 @@ static int ttm_mem_evict_first(struct ttm_bo_device *bdev,
|
|||
goto retry;
|
||||
}
|
||||
|
||||
ret = ttm_bo_reserve_locked(bo, false, no_wait_reserve, false, 0);
|
||||
ret = ttm_bo_reserve_locked(bo, false, true, false, 0);
|
||||
|
||||
if (unlikely(ret == -EBUSY)) {
|
||||
spin_unlock(&glob->lru_lock);
|
||||
if (likely(!no_wait_gpu))
|
||||
if (likely(!no_wait_reserve))
|
||||
ret = ttm_bo_wait_unreserved(bo, interruptible);
|
||||
|
||||
kref_put(&bo->list_kref, ttm_bo_release_list);
|
||||
|
|
Loading…
Reference in a new issue