[PATCH] x86: fix potential jiffies overflow in timer_resume()
i386 timer_resume is updating jiffies, not jiffies_64. It looks there is a potential overflow problem. And jiffies_64 and wall_jiffies should be protected by xtime_lock. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Cc: john stultz <johnstul@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
b05121b29e
commit
f7c09bd972
|
@ -412,9 +412,9 @@ static int timer_resume(struct sys_device *dev)
|
||||||
write_seqlock_irqsave(&xtime_lock, flags);
|
write_seqlock_irqsave(&xtime_lock, flags);
|
||||||
xtime.tv_sec = sec;
|
xtime.tv_sec = sec;
|
||||||
xtime.tv_nsec = 0;
|
xtime.tv_nsec = 0;
|
||||||
write_sequnlock_irqrestore(&xtime_lock, flags);
|
jiffies_64 += sleep_length;
|
||||||
jiffies += sleep_length;
|
|
||||||
wall_jiffies += sleep_length;
|
wall_jiffies += sleep_length;
|
||||||
|
write_sequnlock_irqrestore(&xtime_lock, flags);
|
||||||
if (last_timer->resume)
|
if (last_timer->resume)
|
||||||
last_timer->resume();
|
last_timer->resume();
|
||||||
cur_timer = last_timer;
|
cur_timer = last_timer;
|
||||||
|
|
Loading…
Reference in New Issue