From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752549AbbIONns (ORCPT ); Tue, 15 Sep 2015 09:43:48 -0400 Received: from mail-pa0-f46.google.com ([209.85.220.46]:36749 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751633AbbIONnr (ORCPT ); Tue, 15 Sep 2015 09:43:47 -0400 Subject: Re: [Y2038] [PATCH] dummy_hcd: replace timeval with timespec64 To: Arnd Bergmann , y2038@lists.linaro.org References: <1442321775-32324-1-git-send-email-pingbo.wen@linaro.org> <1446144.x46ug1hXZL@wuerfel> Cc: linux-usb@vger.kernel.org, Felipe Balbi , linux-kernel@vger.kernel.org From: Pingbo Wen Message-ID: <55F82077.5050603@linaro.org> Date: Tue, 15 Sep 2015 21:43:19 +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: <1446144.x46ug1hXZL@wuerfel> 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 On Tuesday, September 15, 2015 09:14 PM, Arnd Bergmann wrote: > On Tuesday 15 September 2015 20:56:15 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 still need to fix it here, >> to avoid similair problems. >> >> Signed-off-by: Pingbo Wen >> Cc: Y2038 >> Cc: linux-kernel@vger.kernel.org >> Cc: Arnd Bergmann >> Cc: Felipe Balbi > > I just replied to the thread of the first mail, and it's good to see you had > the same thought about adding the usb folks to the Cc list. > > When sending a new version of a patch you have already sent before, it's > common practice to use [PATCH v2] in the subject, so please do that for the > next version. > Ok, I thought previous thread is just draft, so I renewed one. Losing some history, sorry for that. > Your changelog text is better than the first version, but can still be improved. > I would at least mention that we want to remove all uses of 'timeval' from > device drivers in order to better scan for y2038 problems in the drivers that > still use them. > > Also, you don't mention at all the discussion we had about real time vs. > monotonic time for this driver. I think using monotonic time (ktime_get_ts64()) > would be more appropriate here, but whichever you choose, you should explain > in the changelog why you think that one is better than the other. > Most of the time, we end up changing from real time to monotonic time in the > same patch when converting a driver to avoid 32-bit time_t, so even you don't > change it, you should explain why not. ktime_get_ts64() is another choice. As we discussed in previous thread, only using jiffies can not keep the precise, and we should also handle the jiffies overflowing case, so I kept the old implementation. > >> 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..7be721dad 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; >> + getnstimeofday64(&tv); >> + return tv.tv_nsec / 1000000L; >> } >> > > As in your other patch, I think the use of NSEC_PER_MSEC would make this > slightly more understandable. > > Arnd >