Re: [PATCH] drm/i915: Make WAIT_IOCTL negative timeouts be indefinite again

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 04, 2015 at 06:09:26PM +0000, Chris Wilson wrote:
> This fixes a regression from
> 
> commit 5ed0bdf21a85d78e04f89f15ccf227562177cbd9
> Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Date:   Wed Jul 16 21:05:06 2014 +0000
> 
>     drm: i915: Use nsec based interfaces
> 
> that made a negative timeout return immediately rather than the
> previously defined behaviour of waiting indefinitely.
> 
> Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
> Cc: Ben Widawsky <benjamin.widawsky@xxxxxxxxx>
> Cc: Kristian Høgsberg <krh@xxxxxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx

Do you have the igt for this too? I think an wait while the buffer should
be busy with a negative timeout is all that's needed to exercise this.
-Daniel

> ---
>  drivers/gpu/drm/i915/i915_gem.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 0cb858269be9..9d0df4d85693 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -2957,9 +2957,9 @@ i915_gem_wait_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
>  	req = obj->last_read_req;
>  
>  	/* Do this after OLR check to make sure we make forward progress polling
> -	 * on this IOCTL with a timeout <=0 (like busy ioctl)
> +	 * on this IOCTL with a timeout == 0 (like busy ioctl)
>  	 */
> -	if (args->timeout_ns <= 0) {
> +	if (args->timeout_ns == 0) {
>  		ret = -ETIME;
>  		goto out;
>  	}
> @@ -2969,7 +2969,8 @@ i915_gem_wait_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
>  	i915_gem_request_reference(req);
>  	mutex_unlock(&dev->struct_mutex);
>  
> -	ret = __i915_wait_request(req, reset_counter, true, &args->timeout_ns,
> +	ret = __i915_wait_request(req, reset_counter, true,
> +				  args->timeout_ns>0 ? &args->timeout_ns : NULL,
>  				  file->driver_priv);
>  	mutex_lock(&dev->struct_mutex);
>  	i915_gem_request_unreference(req);
> -- 
> 2.1.4
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]