Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1226645 > unrolled thread

[PATCH V2] dummy_hcd: replace timeval with timespec64

Started byWEN Pingbo <pingbo.wen@linaro.org>
First post2015-09-17 05:20 +0200
Last post2015-09-17 13:50 +0200
Articles 5 — 4 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH V2] dummy_hcd: replace timeval with timespec64 WEN Pingbo <pingbo.wen@linaro.org> - 2015-09-17 05:20 +0200
    Re: [PATCH V2] dummy_hcd: replace timeval with timespec64 Arnd Bergmann <arnd@arndb.de> - 2015-09-17 10:20 +0200
      [PATCH V3] dummy_hcd: replace timeval with timespec64 WEN Pingbo <pingbo.wen@linaro.org> - 2015-09-18 05:00 +0200
    Re: [PATCH V2] dummy_hcd: replace timeval with timespec64 Peter Stuge <peter@stuge.se> - 2015-09-17 12:00 +0200
      Re: [PATCH V2] dummy_hcd: replace timeval with timespec64 Pingbo Wen <pingbo.wen@linaro.org> - 2015-09-17 13:50 +0200

#1226645 — [PATCH V2] dummy_hcd: replace timeval with timespec64

FromWEN Pingbo <pingbo.wen@linaro.org>
Date2015-09-17 05:20 +0200
Subject[PATCH V2] dummy_hcd: replace timeval with timespec64
Message-ID<q9xTP-7ER-7@gated-at.bofh.it>
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 <pingbo.wen@linaro.org>
Cc: Y2038 <y2038@lists.linaro.org>
Cc: linux-kernel@vger.kernel.org
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Felipe Balbi <balbi@ti.com>
Signed-off-by: WEN Pingbo <pingbo.wen@linaro.org>
---
 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)
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1226741

FromArnd Bergmann <arnd@arndb.de>
Date2015-09-17 10:20 +0200
Message-ID<q9CAa-65P-25@gated-at.bofh.it>
In reply to#1226645
On Thursday 17 September 2015 11:09:49 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 <pingbo.wen@linaro.org>
> Cc: Y2038 <y2038@lists.linaro.org>
> Cc: linux-kernel@vger.kernel.org
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Felipe Balbi <balbi@ti.com>
> Signed-off-by: WEN Pingbo <pingbo.wen@linaro.org>
> 

The patch looks good to me now,

Reviewed-by: Arnd Bergmann <arnd@arndb.de>

Regarding the changelog, I notice you have a duplicate Signed-off-by
line, one of the two should be removed. Also, The "V2 update" portion
should be split into the part that you want in the changelog, without
the '-' bullet points (in this case, the explanation for monontonic
time), and the purely informational part that makes sense for the
review but not for the git history (what changes were done against
previous versions of the patch), which should go below the '---'
line under the Signed-off-by chain, so it gets removed when imported
to git.

If Felipe decides to do these changes himself when he applies the
patch, that's fine, otherwise please send the patch again as 'V3'
tomorrow.

	Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1227530 — [PATCH V3] dummy_hcd: replace timeval with timespec64

FromWEN Pingbo <pingbo.wen@linaro.org>
Date2015-09-18 05:00 +0200
Subject[PATCH V3] dummy_hcd: replace timeval with timespec64
Message-ID<q9U42-6wJ-7@gated-at.bofh.it>
In reply to#1226741
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.

Signed-off-by: Pingbo Wen <pingbo.wen@linaro.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
---

V3 Updates:
- using ts64 variable name to avoid confusion

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.

 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..2ac9a13 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 ts64;
 
-	do_gettimeofday(&tv);
-	return tv.tv_usec / 1000;
+	ktime_get_ts64(&ts64);
+	return ts64.tv_nsec / NSEC_PER_MSEC;
 }
 
 static int dummy_wakeup(struct usb_gadget *_gadget)
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1226831

FromPeter Stuge <peter@stuge.se>
Date2015-09-17 12:00 +0200
Message-ID<q9E8W-8lc-21@gated-at.bofh.it>
In reply to#1226645
WEN Pingbo wrote:
> +++ 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;

tv is very often used for timeval structs.

I suggest also changing the variable name, for example to ts, to
avoid some possible confusion.


//Peter
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1226940

FromPingbo Wen <pingbo.wen@linaro.org>
Date2015-09-17 13:50 +0200
Message-ID<q9FRq-2rZ-35@gated-at.bofh.it>
In reply to#1226831

On Thursday, September 17, 2015 05:59 PM, Peter Stuge wrote:
> WEN Pingbo wrote:
>> +++ 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;
> 
> tv is very often used for timeval structs.
> 
> I suggest also changing the variable name, for example to ts, to
> avoid some possible confusion.
> 

Hi Peter,

Thanks for pointing it out, I will fix it in next version.

Pingbo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web