drm/ttm: fix ttm_mem_evict_first once more

The code path isn't hit at the moment, but we need to take the lock to
add the BO back to the LRU.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-and-Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Roger He <Hongbo.He@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Christian König 2017-11-15 11:05:17 +01:00 committed by Alex Deucher
parent 31b8adab32
commit 0905286393

View File

@ -793,10 +793,13 @@ static int ttm_mem_evict_first(struct ttm_bo_device *bdev,
spin_unlock(&glob->lru_lock); spin_unlock(&glob->lru_lock);
ret = ttm_bo_evict(bo, interruptible, no_wait_gpu); ret = ttm_bo_evict(bo, interruptible, no_wait_gpu);
if (locked) if (locked) {
ttm_bo_unreserve(bo); ttm_bo_unreserve(bo);
else } else {
spin_lock(&glob->lru_lock);
ttm_bo_add_to_lru(bo); ttm_bo_add_to_lru(bo);
spin_unlock(&glob->lru_lock);
}
kref_put(&bo->list_kref, ttm_bo_release_list); kref_put(&bo->list_kref, ttm_bo_release_list);
return ret; return ret;