OSDN Git Service

drm/ttm: drop the spin in delayed delete if the trylock doesn't work
authorChristian König <christian.koenig@amd.com>
Thu, 21 Dec 2017 18:04:15 +0000 (19:04 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 27 Dec 2017 16:34:25 +0000 (11:34 -0500)
Thomas actually noticed that, but I didn't realized what he meant until
now.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Roger He <Hongbo.He@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/ttm/ttm_bo.c

index 60bb5c1..84dfa23 100644 (file)
@@ -592,6 +592,8 @@ static bool ttm_bo_delayed_delete(struct ttm_bo_device *bdev, bool remove_all)
 
                } else if (reservation_object_trylock(bo->resv)) {
                        ttm_bo_cleanup_refs(bo, false, !remove_all, true);
+               } else {
+                       spin_unlock(&glob->lru_lock);
                }
 
                kref_put(&bo->list_kref, ttm_bo_release_list);