public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ben Hutchings <ben.hutchings@codethink.co.uk>
To: Deepa Dinamani <deepa.kernel@gmail.com>,
	dmitry.torokhov@gmail.com, linux-input@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: y2038@lists.linaro.org, peter.hutterer@who-t.net, arnd@arndb.de
Subject: Re: [Y2038] [PATCH v4 1/4] uinput: Use monotonic times for uinput timestamps.
Date: Thu, 14 Dec 2017 21:18:52 +0000	[thread overview]
Message-ID: <1513286332.18523.281.camel@codethink.co.uk> (raw)
In-Reply-To: <1513286249.18523.280.camel@codethink.co.uk>

On Thu, 2017-12-14 at 21:17 +0000, Ben Hutchings wrote:
> On Thu, 2017-12-07 at 10:13 -0800, Deepa Dinamani wrote:
> > struct timeval which is part of struct input_event to
> > maintain the event times is not y2038 safe.
> > 
> > Real time timestamps are also not ideal for input_event
> > as this time can go backwards as noted in the patch
> > a80b83b7b8 by John Stultz.
> > 
> > The patch switches the timestamps to use monotonic time
> > from realtime time. This is assuming no one is using
> > absolute times from these timestamps.
> 
> Why is this change not opt-in, as for evdev?  I assume there were
> compatibility reasons for not changing evdev's clock by default, so I
> would expect them to apply to uinput as well.  (But I'm also prepared
> to believe that user-space is now generally compatible with and would
> prefer monotonic time from all input devices.)

Never mind, I've gone back and seen Arnd's comments about compatibility
on v3.  It might be worth copying those into the commit message though.

Ben.

> Ben.
> 
> > The structure to maintain input events will be changed
> > in a different patch.
> > 
> > Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
> > ---
> >  drivers/input/misc/uinput.c | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/input/misc/uinput.c
> > b/drivers/input/misc/uinput.c
> > index 39ddd9a73feb..d521aecbc078 100644
> > --- a/drivers/input/misc/uinput.c
> > +++ b/drivers/input/misc/uinput.c
> > @@ -84,11 +84,14 @@ static int uinput_dev_event(struct input_dev
> > *dev,
> > >  			    unsigned int type, unsigned int
> > > code, int value)
> > 
> >  {
> >  	struct uinput_device	*udev =
> > input_get_drvdata(dev);
> > +	struct timespec64	ts;
> >  
> >  	udev->buff[udev->head].type = type;
> >  	udev->buff[udev->head].code = code;
> >  	udev->buff[udev->head].value = value;
> > -	do_gettimeofday(&udev->buff[udev->head].time);
> > +	ktime_get_ts64(&ts);
> > +	udev->buff[udev->head].time.tv_sec = ts.tv_sec;
> > +	udev->buff[udev->head].time.tv_usec = ts.tv_nsec /
> > NSEC_PER_USEC;
> >  	udev->head = (udev->head + 1) % UINPUT_BUFFER_SIZE;
> >  
> >  	wake_up_interruptible(&udev->waitq);
-- 
Ben Hutchings
Software Developer, Codethink Ltd.

  reply	other threads:[~2017-12-14 21:18 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-07 18:13 [PATCH v4 0/4] Make input drivers y2038 safe Deepa Dinamani
2017-12-07 18:13 ` [PATCH v4 1/4] uinput: Use monotonic times for uinput timestamps Deepa Dinamani
2017-12-07 22:24   ` Arnd Bergmann
2017-12-14 21:17   ` [Y2038] " Ben Hutchings
2017-12-14 21:18     ` Ben Hutchings [this message]
2017-12-14 21:44       ` Deepa Dinamani
2017-12-14 21:53         ` Ben Hutchings
2017-12-14 22:07           ` Deepa Dinamani
2017-12-07 18:13 ` [PATCH v4 2/4] input: evdev: Replace timeval with timespec64 Deepa Dinamani
2017-12-07 18:13 ` [PATCH v4 3/4] input: Deprecate real timestamps beyond year 2106 Deepa Dinamani
2017-12-07 18:13 ` [PATCH v4 4/4] input: serio: Replace timeval by timespec64 Deepa Dinamani
2017-12-14 21:45   ` [Y2038] " Ben Hutchings
2017-12-16 21:37     ` Deepa Dinamani
2017-12-14  5:33 ` [PATCH v4 0/4] Make input drivers y2038 safe Peter Hutterer

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=1513286332.18523.281.camel@codethink.co.uk \
    --to=ben.hutchings@codethink.co.uk \
    --cc=arnd@arndb.de \
    --cc=deepa.kernel@gmail.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peter.hutterer@who-t.net \
    --cc=y2038@lists.linaro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox