aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2016-07-18 05:31:18 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2016-07-19 02:31:49 -0400
commitbf0901731ddf68e8c6d52d7fc0841fe3d4f66847 (patch)
tree418b7305193076fcfc9812e11844e8d9f40f422c
parenta026df4c5fa6bae8eb03b58be720b911494e3da5 (diff)
drm/vgem: Remember to offset relative timeouts to mod_timer() by jiffies
mod_timer() takes an absolute jiffie value, not a relative timeout and quietly fixup the missed ret=0 otherwise gcc just always returns that the fence timed out. Testcase: igt/vgem_basic/fence Fixes: 407779848445 ("drm/vgem: Attach sw fences to exported vGEM dma-buf") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1468834278-26716-1-git-send-email-chris@chris-wilson.co.uk
-rw-r--r--drivers/gpu/drm/vgem/vgem_fence.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/vgem/vgem_fence.c b/drivers/gpu/drm/vgem/vgem_fence.c
index e77b52208699..892417ba2622 100644
--- a/drivers/gpu/drm/vgem/vgem_fence.c
+++ b/drivers/gpu/drm/vgem/vgem_fence.c
@@ -107,7 +107,7 @@ static struct fence *vgem_fence_create(struct vgem_file *vfile,
107 setup_timer(&fence->timer, vgem_fence_timeout, (unsigned long)fence); 107 setup_timer(&fence->timer, vgem_fence_timeout, (unsigned long)fence);
108 108
109 /* We force the fence to expire within 10s to prevent driver hangs */ 109 /* We force the fence to expire within 10s to prevent driver hangs */
110 mod_timer(&fence->timer, VGEM_FENCE_TIMEOUT); 110 mod_timer(&fence->timer, jiffies + VGEM_FENCE_TIMEOUT);
111 111
112 return &fence->base; 112 return &fence->base;
113} 113}
@@ -240,7 +240,7 @@ int vgem_fence_signal_ioctl(struct drm_device *dev,
240 struct vgem_file *vfile = file->driver_priv; 240 struct vgem_file *vfile = file->driver_priv;
241 struct drm_vgem_fence_signal *arg = data; 241 struct drm_vgem_fence_signal *arg = data;
242 struct fence *fence; 242 struct fence *fence;
243 int ret; 243 int ret = 0;
244 244
245 if (arg->flags) 245 if (arg->flags)
246 return -EINVAL; 246 return -EINVAL;