aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorThomas Hellstrom <thellstrom@vmware.com>2012-10-22 08:51:25 -0400
committerDave Airlie <airlied@redhat.com>2012-10-22 20:15:17 -0400
commit7bc17a7837bf4ec8fd2d63438c0b6b0160c454c1 (patch)
treea50f3d05f4cad2a8678bc452d9f535ab2d4e890b /drivers/gpu/drm
parenta16d4f86019a72b3e8cbb89abff769b25b53ab69 (diff)
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>
Diffstat (limited to 'drivers/gpu/drm')
-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 402ab69f9f9..d42631cade5 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -817,11 +817,11 @@ retry:
817 goto retry; 817 goto retry;
818 } 818 }
819 819
820 ret = ttm_bo_reserve_locked(bo, false, no_wait_reserve, false, 0); 820 ret = ttm_bo_reserve_locked(bo, false, true, false, 0);
821 821
822 if (unlikely(ret == -EBUSY)) { 822 if (unlikely(ret == -EBUSY)) {
823 spin_unlock(&glob->lru_lock); 823 spin_unlock(&glob->lru_lock);
824 if (likely(!no_wait_gpu)) 824 if (likely(!no_wait_reserve))
825 ret = ttm_bo_wait_unreserved(bo, interruptible); 825 ret = ttm_bo_wait_unreserved(bo, interruptible);
826 826
827 kref_put(&bo->list_kref, ttm_bo_release_list); 827 kref_put(&bo->list_kref, ttm_bo_release_list);