From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>
Cc: intel-gfx@lists.freedesktop.org, Ben Widawsky <ben@bwidawsk.net>
Subject: Re: [PATCH] drm/i915: Always normalize return timeout for wait_timeout_ioctl
Date: Tue, 9 Apr 2013 12:26:55 +0300 [thread overview]
Message-ID: <20130409092655.GL4469@intel.com> (raw)
In-Reply-To: <1365498803-16510-1-git-send-email-chris@chris-wilson.co.uk>
On Tue, Apr 09, 2013 at 10:13:23AM +0100, Chris Wilson wrote:
> As we recompute the remaining timeout after waiting, there is a
> potential for that timeout to be less than zero and so need sanitizing.
> The timeout is always returned to userspace and validated, so we should
> always perform the sanitation.
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Ben Widawsky <ben@bwidawsk.net>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---
> drivers/gpu/drm/i915/i915_gem.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 63c05dd..fcf8492 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -1045,6 +1045,7 @@ static int __wait_seqno(struct intel_ring_buffer *ring, u32 seqno,
> if (timeout) {
> struct timespec sleep_time = timespec_sub(now, before);
> *timeout = timespec_sub(*timeout, sleep_time);
> + set_normalized_timespec(timeout, 0, 0);
This will just set timeout = {0,0}, no?
And timespec_sub() should already return a normalized timespec, so I
guess the warning would just trigger when sleep_time > timeout. So we
should maybe just check for that case, and only then set timeout={0,0}?
> }
>
> switch (end) {
> @@ -1053,8 +1054,6 @@ static int __wait_seqno(struct intel_ring_buffer *ring, u32 seqno,
> case -ERESTARTSYS: /* Signal */
> return (int)end;
> case 0: /* Timeout */
> - if (timeout)
> - set_normalized_timespec(timeout, 0, 0);
> return -ETIME;
> default: /* Completed */
> WARN_ON(end < 0); /* We're not aware of other errors */
> --
> 1.7.10.4
--
Ville Syrjälä
Intel OTC
prev parent reply other threads:[~2013-04-09 9:26 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-09 8:58 [PATCH] drm/i915: The timeout for wait_timeout_ioctl is only valid upon success Chris Wilson
2013-04-09 9:07 ` Daniel Vetter
2013-04-09 9:13 ` [PATCH] drm/i915: Always normalize return timeout for wait_timeout_ioctl Chris Wilson
2013-04-09 9:26 ` Ville Syrjälä [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130409092655.GL4469@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=ben@bwidawsk.net \
--cc=chris@chris-wilson.co.uk \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.