A bug caused the ttm code to just terminate the wait when a signal
was received while waiting for the GPU to release a buffer object that
was to be evicted.

Signed-off-by: Thomas Hellstrom <[email protected]>
---
 drivers/gpu/drm/ttm/ttm_bo.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index 1587aec..b82ba6e 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -527,9 +527,12 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, 
unsigned mem_type,
        ret = ttm_bo_wait(bo, false, interruptible, no_wait);
        spin_unlock(&bo->lock);
 
-       if (ret && ret != -ERESTART) {
-               printk(KERN_ERR TTM_PFX "Failed to expire sync object before "
-                      "buffer eviction.\n");
+       if (unlikely(ret != 0)) {
+               if (ret != -ERESTART) {
+                       printk(KERN_ERR TTM_PFX
+                              "Failed to expire sync object before "
+                              "buffer eviction.\n");
+               }
                goto out;
        }
 
-- 
1.6.1.3


------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to