diff options
author | Thomas Hellstrom <thellstrom@vmware.com> | 2009-12-07 18:36:19 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-12-10 15:09:03 +1000 |
commit | 5cc6fbab9da5680e7e5d2507d0f0c2c52ff18031 (patch) | |
tree | 0754b2bc4fd022f055baa280213c1a33db48cb4a /drivers/gpu/drm/radeon/radeon_fence.c | |
parent | 98ffc4158e12008102cb6ae242a7fc46f9243f0d (diff) | |
download | kernel_samsung_smdk4412-5cc6fbab9da5680e7e5d2507d0f0c2c52ff18031.zip kernel_samsung_smdk4412-5cc6fbab9da5680e7e5d2507d0f0c2c52ff18031.tar.gz kernel_samsung_smdk4412-5cc6fbab9da5680e7e5d2507d0f0c2c52ff18031.tar.bz2 |
drm/radeon: Remove tests for -ERESTART from the TTM code.
Also sets affected TTM calls up to not wait interruptible, since
that would cause an in-kernel spin until the TTM call succeeds, since
the Radeon code does not return to user-space when a signal is received.
Modifies interruptible fence waits to return -ERESTARTSYS rather than
-EBUSY when interrupted by a signal, since that's the (yet undocumented)
semantics required by the TTM sync object hooks.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_fence.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_fence.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_fence.c b/drivers/gpu/drm/radeon/radeon_fence.c index 2ac3163..78743cd 100644 --- a/drivers/gpu/drm/radeon/radeon_fence.c +++ b/drivers/gpu/drm/radeon/radeon_fence.c @@ -197,9 +197,8 @@ retry: r = wait_event_interruptible_timeout(rdev->fence_drv.queue, radeon_fence_signaled(fence), timeout); radeon_irq_kms_sw_irq_put(rdev); - if (unlikely(r == -ERESTARTSYS)) { - return -EBUSY; - } + if (unlikely(r != 0)) + return r; } else { radeon_irq_kms_sw_irq_get(rdev); r = wait_event_timeout(rdev->fence_drv.queue, |