From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Hutterer Subject: Re: [PATCH v2 2/4] input: evdev: Replace timeval with timespec64 Date: Thu, 27 Oct 2016 11:34:33 +1000 Message-ID: <20161027013433.GA14832@jelly> References: <1476761253-13450-1-git-send-email-deepa.kernel@gmail.com> <1476761253-13450-3-git-send-email-deepa.kernel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1476761253-13450-3-git-send-email-deepa.kernel@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: y2038-bounces@lists.linaro.org Sender: "Y2038" To: Deepa Dinamani Cc: y2038@lists.linaro.org, Dmitry Torokhov , linux-kernel@vger.kernel.org, arnd@arndb.de, linux-input@vger.kernel.org List-Id: linux-input@vger.kernel.org T24gTW9uLCBPY3QgMTcsIDIwMTYgYXQgMDg6Mjc6MzFQTSAtMDcwMCwgRGVlcGEgRGluYW1hbmkg d3JvdGU6Cj4gc3RydWN0IHRpbWV2YWwgaXMgbm90IHkyMDM4IHNhZmUuCj4gCj4gQWxsIHJlZmVy ZW5jZXMgdG8gdGltZXZhbCBpbiB0aGUga2VybmVsIHdpbGwgYmUgcmVwbGFjZWQKPiBieSB5MjAz OCBzYWZlIHN0cnVjdHVyZXMuCj4gUmVwbGFjZSBhbGwgcmVmZXJlbmNlcyB0byB0aW1ldmFsIHdp dGggeTIwMzggc2FmZQo+IHN0cnVjdCB0aW1lc3BlYzY0IGhlcmUuCj4gCj4gc3RydWN0IGlucHV0 X2V2ZW50IHdpbGwgYmUgY2hhbmdlZCBpbiBhIGRpZmZlcmVudCBwYXRjaC4KPiAKPiBTaWduZWQt b2ZmLWJ5OiBEZWVwYSBEaW5hbWFuaSA8ZGVlcGEua2VybmVsQGdtYWlsLmNvbT4KPiBSZXZpZXdl ZC1ieTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KPiAtLS0KPiAgZHJpdmVycy9pbnB1 dC9ldmRldi5jIHwgMzcgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+ICAx IGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvZXZkZXYuYyBiL2RyaXZlcnMvaW5wdXQvZXZkZXYuYwo+ IGluZGV4IGU5YWUzZDUuLmI0ZTMxNzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9pbnB1dC9ldmRl di5jCj4gKysrIGIvZHJpdmVycy9pbnB1dC9ldmRldi5jCj4gQEAgLTE1NiwxNSArMTU2LDIyIEBA IHN0YXRpYyB2b2lkIF9fZXZkZXZfZmx1c2hfcXVldWUoc3RydWN0IGV2ZGV2X2NsaWVudCAqY2xp ZW50LCB1bnNpZ25lZCBpbnQgdHlwZSkKPiAgc3RhdGljIHZvaWQgX19ldmRldl9xdWV1ZV9zeW5f ZHJvcHBlZChzdHJ1Y3QgZXZkZXZfY2xpZW50ICpjbGllbnQpCj4gIHsKPiAgCXN0cnVjdCBpbnB1 dF9ldmVudCBldjsKPiAtCWt0aW1lX3QgdGltZTsKPiArCXN0cnVjdCB0aW1lc3BlYzY0IHRzOwo+ ICAKPiAtCXRpbWUgPSBjbGllbnQtPmNsa190eXBlID09IEVWX0NMS19SRUFMID8KPiAtCQkJa3Rp bWVfZ2V0X3JlYWwoKSA6Cj4gLQkJCWNsaWVudC0+Y2xrX3R5cGUgPT0gRVZfQ0xLX01PTk8gPwo+ IC0JCQkJa3RpbWVfZ2V0KCkgOgo+IC0JCQkJa3RpbWVfZ2V0X2Jvb3R0aW1lKCk7Cj4gKwlzd2l0 Y2ggKGNsaWVudC0+Y2xrX3R5cGUpIHsKPiArCWNhc2UgRVZfQ0xLX1JFQUw6Cj4gKwkJa3RpbWVf Z2V0X3JlYWxfdHM2NCgmdHMpOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBFVl9DTEtfTU9OTzoKPiAr CQlrdGltZV9nZXRfdHM2NCgmdHMpOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBFVl9DTEtfQk9PVDoK PiArCQlnZXRfbW9ub3RvbmljX2Jvb3R0aW1lNjQoJnRzKTsKPiArCQlicmVhazsKPiArCX0KPiAg Cj4gLQlldi50aW1lID0ga3RpbWVfdG9fdGltZXZhbCh0aW1lKTsKPiArCWV2LnRpbWUudHZfc2Vj ID0gdHMudHZfc2VjOwo+ICsJZXYudGltZS50dl91c2VjID0gdHMudHZfbnNlYyAvIE5TRUNfUEVS X1VTRUM7Cj4gIAlldi50eXBlID0gRVZfU1lOOwo+ICAJZXYuY29kZSA9IFNZTl9EUk9QUEVEOwo+ ICAJZXYudmFsdWUgPSAwOwo+IEBAIC0yNTcsMTcgKzI2NCwyMCBAQCBzdGF0aWMgdm9pZCBfX3Bh c3NfZXZlbnQoc3RydWN0IGV2ZGV2X2NsaWVudCAqY2xpZW50LAo+ICAKPiAgc3RhdGljIHZvaWQg ZXZkZXZfcGFzc192YWx1ZXMoc3RydWN0IGV2ZGV2X2NsaWVudCAqY2xpZW50LAo+ICAJCQljb25z dCBzdHJ1Y3QgaW5wdXRfdmFsdWUgKnZhbHMsIHVuc2lnbmVkIGludCBjb3VudCwKPiAtCQkJa3Rp bWVfdCAqZXZfdGltZSkKPiArCQkJc3RydWN0IHRpbWVzcGVjNjQgKmV2X3RpbWUpCj4gIHsKPiAg CXN0cnVjdCBldmRldiAqZXZkZXYgPSBjbGllbnQtPmV2ZGV2Owo+ICAJY29uc3Qgc3RydWN0IGlu cHV0X3ZhbHVlICp2Owo+ICAJc3RydWN0IGlucHV0X2V2ZW50IGV2ZW50Owo+ICsJc3RydWN0IHRp bWVzcGVjNjQgdHM7Cj4gIAlib29sIHdha2V1cCA9IGZhbHNlOwo+ICAKPiAgCWlmIChjbGllbnQt PnJldm9rZWQpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWV2ZW50LnRpbWUgPSBrdGltZV90b190aW1l dmFsKGV2X3RpbWVbY2xpZW50LT5jbGtfdHlwZV0pOwo+ICsJdHMgPSBldl90aW1lW2NsaWVudC0+ Y2xrX3R5cGVdOwo+ICsJZXZlbnQudGltZS50dl9zZWMgPSB0cy50dl9zZWM7Cj4gKwlldmVudC50 aW1lLnR2X3VzZWMgPSB0cy50dl9uc2VjIC8gTlNFQ19QRVJfVVNFQzsKCnlvdSBoYXZlIGt0aW1l X2dldF8qIGhlbHBlcnMgYmVsb3cgYnV0IHlvdSBkb24ndCBoYXZlIG9uZSBmb3IgdGltZXNwZWM2 NCB0bwpzdHJ1Y3QgdGltZXZhbD8gVGhhdCBzZWVtcyBsaWtlIGEgYnVnIHdhaXRpZyB0byBoYXBw ZW4uCgpDaGVlcnMsCiAgIFBldGVyCgo+ICAKPiAgCS8qIEludGVycnVwdHMgYXJlIGRpc2FibGVk LCBqdXN0IGFjcXVpcmUgdGhlIGxvY2suICovCj4gIAlzcGluX2xvY2soJmNsaWVudC0+YnVmZmVy X2xvY2spOwo+IEBAIC0zMDQsMTIgKzMxNCwxMSBAQCBzdGF0aWMgdm9pZCBldmRldl9ldmVudHMo c3RydWN0IGlucHV0X2hhbmRsZSAqaGFuZGxlLAo+ICB7Cj4gIAlzdHJ1Y3QgZXZkZXYgKmV2ZGV2 ID0gaGFuZGxlLT5wcml2YXRlOwo+ICAJc3RydWN0IGV2ZGV2X2NsaWVudCAqY2xpZW50Owo+IC0J a3RpbWVfdCBldl90aW1lW0VWX0NMS19NQVhdOwo+ICsJc3RydWN0IHRpbWVzcGVjNjQgZXZfdGlt ZVtFVl9DTEtfTUFYXTsKPiAgCj4gLQlldl90aW1lW0VWX0NMS19NT05PXSA9IGt0aW1lX2dldCgp Owo+IC0JZXZfdGltZVtFVl9DTEtfUkVBTF0gPSBrdGltZV9tb25vX3RvX3JlYWwoZXZfdGltZVtF Vl9DTEtfTU9OT10pOwo+IC0JZXZfdGltZVtFVl9DTEtfQk9PVF0gPSBrdGltZV9tb25vX3RvX2Fu eShldl90aW1lW0VWX0NMS19NT05PXSwKPiAtCQkJCQkJIFRLX09GRlNfQk9PVCk7Cj4gKwlrdGlt ZV9nZXRfdHM2NCgmZXZfdGltZVtFVl9DTEtfTU9OT10pOwo+ICsJa3RpbWVfZ2V0X3JlYWxfdHM2 NCgmZXZfdGltZVtFVl9DTEtfUkVBTF0pOwo+ICsJZ2V0X21vbm90b25pY19ib290dGltZTY0KCZl dl90aW1lW0VWX0NMS19CT09UXSk7Cj4gIAo+ICAJcmN1X3JlYWRfbG9jaygpOwo+ICAKPiAtLSAK PiAyLjcuNAo+IAo+IC0tCj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhl IGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LWlucHV0IiBpbgo+IHRoZSBib2R5IG9mIGEgbWVzc2Fn ZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnCj4gTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAg aHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1sCj4gCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClkyMDM4IG1haWxpbmcgbGlzdApZ MjAzOEBsaXN0cy5saW5hcm8ub3JnCmh0dHBzOi8vbGlzdHMubGluYXJvLm9yZy9tYWlsbWFuL2xp c3RpbmZvL3kyMDM4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934834AbcJ0B5R (ORCPT ); Wed, 26 Oct 2016 21:57:17 -0400 Received: from leo.clearchain.com ([199.73.29.74]:39194 "EHLO mail.clearchain.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932707AbcJ0B5P (ORCPT ); Wed, 26 Oct 2016 21:57:15 -0400 Date: Thu, 27 Oct 2016 11:34:33 +1000 From: Peter Hutterer To: Deepa Dinamani Cc: Dmitry Torokhov , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, arnd@arndb.de, y2038@lists.linaro.org Subject: Re: [PATCH v2 2/4] input: evdev: Replace timeval with timespec64 Message-ID: <20161027013433.GA14832@jelly> References: <1476761253-13450-1-git-send-email-deepa.kernel@gmail.com> <1476761253-13450-3-git-send-email-deepa.kernel@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1476761253-13450-3-git-send-email-deepa.kernel@gmail.com> User-Agent: Mutt/1.7.1 (2016-10-04) X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.4.3 (mail.clearchain.com [127.0.0.1]); Thu, 27 Oct 2016 12:10:20 +1030 (CST) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Oct 17, 2016 at 08:27:31PM -0700, Deepa Dinamani wrote: > struct timeval is not y2038 safe. > > All references to timeval in the kernel will be replaced > by y2038 safe structures. > Replace all references to timeval with y2038 safe > struct timespec64 here. > > struct input_event will be changed in a different patch. > > Signed-off-by: Deepa Dinamani > Reviewed-by: Arnd Bergmann > --- > drivers/input/evdev.c | 37 +++++++++++++++++++++++-------------- > 1 file changed, 23 insertions(+), 14 deletions(-) > > diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c > index e9ae3d5..b4e3171 100644 > --- a/drivers/input/evdev.c > +++ b/drivers/input/evdev.c > @@ -156,15 +156,22 @@ static void __evdev_flush_queue(struct evdev_client *client, unsigned int type) > static void __evdev_queue_syn_dropped(struct evdev_client *client) > { > struct input_event ev; > - ktime_t time; > + struct timespec64 ts; > > - time = client->clk_type == EV_CLK_REAL ? > - ktime_get_real() : > - client->clk_type == EV_CLK_MONO ? > - ktime_get() : > - ktime_get_boottime(); > + switch (client->clk_type) { > + case EV_CLK_REAL: > + ktime_get_real_ts64(&ts); > + break; > + case EV_CLK_MONO: > + ktime_get_ts64(&ts); > + break; > + case EV_CLK_BOOT: > + get_monotonic_boottime64(&ts); > + break; > + } > > - ev.time = ktime_to_timeval(time); > + ev.time.tv_sec = ts.tv_sec; > + ev.time.tv_usec = ts.tv_nsec / NSEC_PER_USEC; > ev.type = EV_SYN; > ev.code = SYN_DROPPED; > ev.value = 0; > @@ -257,17 +264,20 @@ static void __pass_event(struct evdev_client *client, > > static void evdev_pass_values(struct evdev_client *client, > const struct input_value *vals, unsigned int count, > - ktime_t *ev_time) > + struct timespec64 *ev_time) > { > struct evdev *evdev = client->evdev; > const struct input_value *v; > struct input_event event; > + struct timespec64 ts; > bool wakeup = false; > > if (client->revoked) > return; > > - event.time = ktime_to_timeval(ev_time[client->clk_type]); > + ts = ev_time[client->clk_type]; > + event.time.tv_sec = ts.tv_sec; > + event.time.tv_usec = ts.tv_nsec / NSEC_PER_USEC; you have ktime_get_* helpers below but you don't have one for timespec64 to struct timeval? That seems like a bug waitig to happen. Cheers, Peter > > /* Interrupts are disabled, just acquire the lock. */ > spin_lock(&client->buffer_lock); > @@ -304,12 +314,11 @@ static void evdev_events(struct input_handle *handle, > { > struct evdev *evdev = handle->private; > struct evdev_client *client; > - ktime_t ev_time[EV_CLK_MAX]; > + struct timespec64 ev_time[EV_CLK_MAX]; > > - ev_time[EV_CLK_MONO] = ktime_get(); > - ev_time[EV_CLK_REAL] = ktime_mono_to_real(ev_time[EV_CLK_MONO]); > - ev_time[EV_CLK_BOOT] = ktime_mono_to_any(ev_time[EV_CLK_MONO], > - TK_OFFS_BOOT); > + ktime_get_ts64(&ev_time[EV_CLK_MONO]); > + ktime_get_real_ts64(&ev_time[EV_CLK_REAL]); > + get_monotonic_boottime64(&ev_time[EV_CLK_BOOT]); > > rcu_read_lock(); > > -- > 2.7.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-input" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >