drm/ttm: Don't unreserve swapped BOs that were previously reserved
authorFelix Kuehling <Felix.Kuehling@amd.com>
Thu, 18 Jan 2018 04:54:07 +0000 (23:54 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 18 Jan 2018 21:14:32 +0000 (16:14 -0500)
If ttm_bo_swapout doesn't own the lock, don't release it. Someone
else probably depends on it still being locked.

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

index 62518b669ca1003b891d33e9be3e0dd65ff565f8..893003fc76a14d430f1367f4ef4458b21fcdca3e 100644 (file)
@@ -1780,8 +1780,8 @@ out:
         * Unreserve without putting on LRU to avoid swapping out an
         * already swapped buffer.
         */
-
-       reservation_object_unlock(bo->resv);
+       if (locked)
+               reservation_object_unlock(bo->resv);
        kref_put(&bo->list_kref, ttm_bo_release_list);
        return ret;
 }