summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hellstrom <thellstrom@vmware.com>2012-10-22 12:51:25 +0000
committerDave Airlie <airlied@redhat.com>2012-10-23 10:15:17 +1000
commit7bc17a7837bf4ec8fd2d63438c0b6b0160c454c1 (patch)
treea50f3d05f4cad2a8678bc452d9f535ab2d4e890b
parenta16d4f86019a72b3e8cbb89abff769b25b53ab69 (diff)
downloadlwn-7bc17a7837bf4ec8fd2d63438c0b6b0160c454c1.tar.gz
lwn-7bc17a7837bf4ec8fd2d63438c0b6b0160c454c1.zip
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>
-rw-r--r--drivers/gpu/drm/ttm/ttm_bo.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index 402ab69f9f99..d42631cade5a 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -817,11 +817,11 @@ retry:
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);