diff options
author | John Stultz <john.stultz@linaro.org> | 2012-08-21 20:30:46 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2012-08-22 10:42:12 +0200 |
commit | 784ffcbb96c3a97b4c64fd48b1dfe12ef3fcbcda (patch) | |
tree | bd413e1c43512c1963d25ed25dd617642a639444 /kernel/time/timekeeping.c | |
parent | 4e8b14526ca7fb046a81c94002c1c43b6fdf0e9b (diff) | |
download | linux-784ffcbb96c3a97b4c64fd48b1dfe12ef3fcbcda.tar.gz linux-784ffcbb96c3a97b4c64fd48b1dfe12ef3fcbcda.tar.bz2 linux-784ffcbb96c3a97b4c64fd48b1dfe12ef3fcbcda.zip |
time: Ensure we normalize the timekeeper in tk_xtime_add
Andreas noticed problems with resume on specific hardware after commit
1e75fa8b (time: Condense timekeeper.xtime into xtime_sec) combined
with commit b44d50dca (time: Fix casting issue in tk_set_xtime and
tk_xtime_add)
After some digging I realized we aren't normalizing the timekeeper
after the add. Add the missing normalize call.
Reported-by: Andreas Schwab <schwab@linux-m68k.org>
Tested-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Ingo Molnar <mingo@kernel.org>
Link: http://lkml.kernel.org/r/1345595449-34965-2-git-send-email-john.stultz@linaro.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/time/timekeeping.c')
-rw-r--r-- | kernel/time/timekeeping.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 898bef066a44..258164ae45cc 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -115,6 +115,7 @@ static void tk_xtime_add(struct timekeeper *tk, const struct timespec *ts) { tk->xtime_sec += ts->tv_sec; tk->xtime_nsec += (u64)ts->tv_nsec << tk->shift; + tk_normalize_xtime(tk); } static void tk_set_wall_to_mono(struct timekeeper *tk, struct timespec wtm) |