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: 4077798484
("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
This commit is contained in:
parent
a026df4c5f
commit
bf0901731d
|
@ -107,7 +107,7 @@ static struct fence *vgem_fence_create(struct vgem_file *vfile,
|
||||||
setup_timer(&fence->timer, vgem_fence_timeout, (unsigned long)fence);
|
setup_timer(&fence->timer, vgem_fence_timeout, (unsigned long)fence);
|
||||||
|
|
||||||
/* We force the fence to expire within 10s to prevent driver hangs */
|
/* We force the fence to expire within 10s to prevent driver hangs */
|
||||||
mod_timer(&fence->timer, VGEM_FENCE_TIMEOUT);
|
mod_timer(&fence->timer, jiffies + VGEM_FENCE_TIMEOUT);
|
||||||
|
|
||||||
return &fence->base;
|
return &fence->base;
|
||||||
}
|
}
|
||||||
|
@ -240,7 +240,7 @@ int vgem_fence_signal_ioctl(struct drm_device *dev,
|
||||||
struct vgem_file *vfile = file->driver_priv;
|
struct vgem_file *vfile = file->driver_priv;
|
||||||
struct drm_vgem_fence_signal *arg = data;
|
struct drm_vgem_fence_signal *arg = data;
|
||||||
struct fence *fence;
|
struct fence *fence;
|
||||||
int ret;
|
int ret = 0;
|
||||||
|
|
||||||
if (arg->flags)
|
if (arg->flags)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
Loading…
Reference in New Issue