summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2016-01-25 14:32:41 -0800
committerEric Anholt <eric@anholt.net>2016-02-16 12:20:59 -0800
commit13cf8909ead67e313ea203ee524b3cf4b09b3c9d (patch)
tree0c2f86ae5710d83110403bbc7079e67dbfc24f93
parent2c68f1fcfb9cfc10deff9bc59774aa331a6fabd2 (diff)
downloadlinux-stable-13cf8909ead67e313ea203ee524b3cf4b09b3c9d.tar.gz
linux-stable-13cf8909ead67e313ea203ee524b3cf4b09b3c9d.tar.bz2
linux-stable-13cf8909ead67e313ea203ee524b3cf4b09b3c9d.zip
drm/vc4: Fix -ERESTARTSYS error return from BO waits.
This caused the wait ioctls to claim that waiting had completed when we actually got interrupted by a signal before it was done. Fixes broken rendering throttling that produced serious lag in X window dragging. Signed-off-by: Eric Anholt <eric@anholt.net>
-rw-r--r--drivers/gpu/drm/vc4/vc4_gem.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c
index 3bf679d367a1..15619dbf34ca 100644
--- a/drivers/gpu/drm/vc4/vc4_gem.c
+++ b/drivers/gpu/drm/vc4/vc4_gem.c
@@ -340,12 +340,10 @@ vc4_wait_for_seqno(struct drm_device *dev, uint64_t seqno, uint64_t timeout_ns,
finish_wait(&vc4->job_wait_queue, &wait);
trace_vc4_wait_for_seqno_end(dev, seqno);
- if (ret && ret != -ERESTARTSYS) {
+ if (ret && ret != -ERESTARTSYS)
DRM_ERROR("timeout waiting for render thread idle\n");
- return ret;
- }
- return 0;
+ return ret;
}
static void