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
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
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]>.
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
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
>