From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753069AbbIQDON (ORCPT ); Wed, 16 Sep 2015 23:14:13 -0400 Received: from mail-pa0-f47.google.com ([209.85.220.47]:35815 "EHLO mail-pa0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752871AbbIQDOL (ORCPT ); Wed, 16 Sep 2015 23:14:11 -0400 Subject: Re: [PATCH V2] dummy_hcd: replace timeval with timespec64 To: linux-usb@vger.kernel.org References: <2640620.MF43KccxAS@wuerfel> <1442459389-11171-1-git-send-email-pingbo.wen@linaro.org> Cc: Y2038 , linux-kernel@vger.kernel.org, Arnd Bergmann , Felipe Balbi , stern@rowland.harvard.edu From: Pingbo Wen Message-ID: <55FA2FE5.1080900@linaro.org> Date: Thu, 17 Sep 2015 11:13:41 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <1442459389-11171-1-git-send-email-pingbo.wen@linaro.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org add Alan Stern On Thursday, September 17, 2015 11:09 AM, WEN Pingbo wrote: > The millisecond of the last second will be normal if tv_sec is > overflowed. But for y2038 consistency and demonstration purpose, > and avoiding further risks, we need to remove 'timeval' in this > driver, to avoid similair problems. > > V2 Updates: > - using monotonic time here by replacing getnstimeofday() with > ktime_get_ts64(), to avoid leap second issues. The frame time in USB > is always 1ms, no matter what speed, so ktime_get_ts64() have enough > resolution to cover this. > - using NSEC_PER_MSEC instead of hard code. > > Signed-off-by: Pingbo Wen > Cc: Y2038 > Cc: linux-kernel@vger.kernel.org > Cc: Arnd Bergmann > Cc: Felipe Balbi > Signed-off-by: WEN Pingbo > --- > drivers/usb/gadget/udc/dummy_hcd.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c > index 1379ad4..6d1ed35 100644 > --- a/drivers/usb/gadget/udc/dummy_hcd.c > +++ b/drivers/usb/gadget/udc/dummy_hcd.c > @@ -833,10 +833,10 @@ static const struct usb_ep_ops dummy_ep_ops = { > /* there are both host and device side versions of this call ... */ > static int dummy_g_get_frame(struct usb_gadget *_gadget) > { > - struct timeval tv; > + struct timespec64 tv; > > - do_gettimeofday(&tv); > - return tv.tv_usec / 1000; > + ktime_get_ts64(&tv); > + return tv.tv_nsec / NSEC_PER_MSEC; > } > > static int dummy_wakeup(struct usb_gadget *_gadget) >