drm/radeon/kms: allow interruptible waits for objects.

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linux Kernel Mailing List
Date: Wednesday, July 29, 2009 - 1:00 pm

Gitweb:     http://git.kernel.org/linus/3b170c3b2e688665fbc2845ba5bb4304bf38a119
Commit:     3b170c3b2e688665fbc2845ba5bb4304bf38a119
Parent:     f121ecfebbea1452a17d57c656def7d1537440f7
Author:     Dave Airlie <airlied@redhat.com>
AuthorDate: Fri Jul 24 13:47:45 2009 +1000
Committer:  Dave Airlie <airlied@redhat.com>
CommitDate: Wed Jul 29 15:59:49 2009 +1000

    drm/radeon/kms: allow interruptible waits for objects.
    
    Blocking here isn't something the X server mouse appreciates,
    avoid the block and let userspace retry the waits.
    
    libdrm_radeon userspace library is also expecting EBUSY not ERESTART
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/radeon/radeon_fence.c  |    2 +-
 drivers/gpu/drm/radeon/radeon_object.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_fence.c b/drivers/gpu/drm/radeon/radeon_fence.c
index 96afbf5..b4e48dd 100644
--- a/drivers/gpu/drm/radeon/radeon_fence.c
+++ b/drivers/gpu/drm/radeon/radeon_fence.c
@@ -195,7 +195,7 @@ retry:
 		r = wait_event_interruptible_timeout(rdev->fence_drv.queue,
 				radeon_fence_signaled(fence), timeout);
 		if (unlikely(r == -ERESTARTSYS)) {
-			return -ERESTART;
+			return -EBUSY;
 		}
 	} else {
 		r = wait_event_timeout(rdev->fence_drv.queue,
diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
index 81573c3..dd9ac2f 100644
--- a/drivers/gpu/drm/radeon/radeon_object.c
+++ b/drivers/gpu/drm/radeon/radeon_object.c
@@ -309,7 +309,7 @@ int radeon_object_wait(struct radeon_object *robj)
 	}
 	spin_lock(&robj->tobj.lock);
 	if (robj->tobj.sync_obj) {
-		r = ttm_bo_wait(&robj->tobj, true, false, false);
+		r = ttm_bo_wait(&robj->tobj, true, true, false);
 	}
 	spin_unlock(&robj->tobj.lock);
 	radeon_object_unreserve(robj);
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
drm/radeon/kms: allow interruptible waits for objects., Linux Kernel Mailing ..., (Wed Jul 29, 1:00 pm)