2009-09-28 10:17:03

by Barry Song

[permalink] [raw]
Subject: [PATCH] Fix half-Y2K38 problem in timecompare_update while calculating offset

ktime will overflow from 03:14:07 UTC on Tuesday, 19 January 2038,
ktime_add() in timecompare_update() will overflow a half earlier.
As a result, wrong offset will be gotten, then cause some strange
problems.
---
kernel/time/timecompare.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/kernel/time/timecompare.c b/kernel/time/timecompare.c
index 71e7f1a..d2d893e 100644
--- a/kernel/time/timecompare.c
+++ b/kernel/time/timecompare.c
@@ -89,7 +89,7 @@ int timecompare_offset(struct timecompare *sync,
* source time
*/
sample.offset =
- ktime_to_ns(ktime_add(end, start)) / 2 -
+ (ktime_to_ns(end) + ktime_to_ns(start)) / 2 -
ts;

/* simple insertion sort based on duration */
--
1.5.6.3


2009-09-30 02:45:07

by Mike Frysinger

[permalink] [raw]
Subject: Re: [PATCH] Fix half-Y2K38 problem in timecompare_update while calculating offset

On Mon, Sep 28, 2009 at 06:16, Barry Song wrote:
> ktime will overflow from 03:14:07 UTC on Tuesday, 19 January 2038,
> ktime_add() in timecompare_update() will overflow a half earlier.
> As a result, wrong offset will be gotten, then cause some strange
> problems.

Barry: you forgot to include your s-o-b tag ...
-mike

2009-09-30 05:35:32

by Cong Wang

[permalink] [raw]
Subject: Re: [PATCH] Fix half-Y2K38 problem in timecompare_update while calculating offset

On Mon, Sep 28, 2009 at 6:16 PM, Barry Song <[email protected]> wrote:
> ktime will overflow from 03:14:07 UTC on Tuesday, 19 January 2038,
> ktime_add() in timecompare_update() will overflow a half earlier.
> As a result, wrong offset will be gotten, then cause some strange
> problems.
> ---
>  kernel/time/timecompare.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/kernel/time/timecompare.c b/kernel/time/timecompare.c
> index 71e7f1a..d2d893e 100644
> --- a/kernel/time/timecompare.c
> +++ b/kernel/time/timecompare.c
> @@ -89,7 +89,7 @@ int timecompare_offset(struct timecompare *sync,
>                         * source time
>                         */
>                        sample.offset =
> -                               ktime_to_ns(ktime_add(end, start)) / 2 -
> +                               (ktime_to_ns(end) + ktime_to_ns(start)) / 2 -
>                                ts;
>
>                        /* simple insertion sort based on duration */

Just please add your Signed-off-by.

I think you catch the right thing, so

Acked-by: WANG Cong <[email protected]>

Add Cc: Thomas Gleixner <[email protected]>.

2010-01-05 19:28:50

by Mike Frysinger

[permalink] [raw]
Subject: Re: [PATCH] Fix half-Y2K38 problem in timecompare_update while calculating offset

On Tue, Sep 29, 2009 at 21:44, Mike Frysinger wrote:
> On Mon, Sep 28, 2009 at 06:16, Barry Song wrote:
>> ktime will overflow from 03:14:07 UTC on Tuesday, 19 January 2038,
>> ktime_add() in timecompare_update() will overflow a half earlier.
>> As a result, wrong offset will be gotten, then cause some strange
>> problems.
>
> Barry: you forgot to include your s-o-b tag ...

you still need to post your s-o-b if we want this to go any further
-mike

2010-01-06 03:24:31

by Barry Song

[permalink] [raw]
Subject: Re: [PATCH] Fix half-Y2K38 problem in timecompare_update while calculating offset

It has been merged into mainline:

timecompare: fix half-Y2K38 problem in timecompare_update while
calculating offset
author Barry Song <[email protected]>
Wed, 16 Dec 2009 00:45:34 +0000 (16:45 -0800)
committer Linus Torvalds <[email protected]>
Wed, 16 Dec 2009 15:19:57 +0000 (07:19 -0800)
commit f065f41f48569122b5bcddbd1ba2354f7cc29fdc
tree 68606305bfb3aba16437017e0596ccae11e6f6db tree | snapshot
parent 4365a5676fa3aa1d5ae6c90c22a0044f09ba584e commit | diff
timecompare: fix half-Y2K38 problem in timecompare_update while
calculating offset

ktime will overflow from 03:14:07 UTC on Tuesday, 19 January 2038,
ktime_add() in timecompare_update() will overflow a half earlier. As a
result, wrong offset will be gotten, then cause some strange problems.

Signed-off-by: Barry Song <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Patrick Ohly <[email protected]>
Cc: David S. Miller <[email protected]>
Cc: John Stultz <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>


On Wed, Jan 6, 2010 at 3:28 AM, Mike Frysinger <[email protected]> wrote:
> On Tue, Sep 29, 2009 at 21:44, Mike Frysinger wrote:
>> On Mon, Sep 28, 2009 at 06:16, Barry Song wrote:
>>> ktime will overflow from 03:14:07 UTC on Tuesday, 19 January 2038,
>>> ktime_add() in timecompare_update() will overflow a half earlier.
>>> As a result, wrong offset will be gotten, then cause some strange
>>> problems.
>>
>> Barry: you forgot to include your s-o-b tag ...
>
> you still need to post your s-o-b if we want this to go any further
> -mike
>