From: Thomas Hellstrom Date: Wed, 17 Jun 2009 10:29:55 +0000 (+0200) Subject: ttm: Return -ERESTART when a signal interrupts bo eviction. X-Git-Tag: MMI-PSA29.97-13-9~27684^2~17 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=78ecf091aa592a9e160ebbbfa5873c2bb2e2d0f8;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git ttm: Return -ERESTART when a signal interrupts bo eviction. 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 Signed-off-by: Dave Airlie --- diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index 1587aeca7bea..b82ba6e5a586 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; }