Message ID | 1342457442-7255-1-git-send-email-johnstul@us.ibm.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
I run into the same regression in s2ram between v3.5-rc6 and v3.5-rc7. This patch helps. Thanks. Tested-by: Konstantin Khlebnikov <khlebnikov@openvz.org> John Stultz wrote: > From: Thomas Gleixner<tglx@linutronix.de> > > Linus, > Since Thomas is on vacation I wanted to send you his fix to resolve > the suspend regression from the leapsecond fixes. > > thanks > -john > > The leap second rework unearthed another issue of inconsistent data. > > On timekeeping_resume() the timekeeper data is updated, but nothing > calls timekeeping_update(), so now the update code in the timer > interrupt sees stale values. > > This has been the case before those changes, but then the timer > interrupt was using stale data as well so this went unnoticed for > quite some time. > > Add the missing update call, so all the data is consistent everywhere. > > Reported-by: Andreas Schwab<schwab@linux-m68k.org> > Reported-by-and-tested-by: "Rafael J. Wysocki"<rjw@sisk.pl> > CC: LKML<linux-kernel@vger.kernel.org> > Cc: Linux PM list<linux-pm@vger.kernel.org> > Cc: John Stultz<johnstul@us.ibm.com> > Cc: Ingo Molnar<mingo@kernel.org> > Cc: Peter Zijlstra<a.p.zijlstra@chello.nl>, > Cc: Prarit Bhargava<prarit@redhat.com> > Cc: stable@vger.kernel.org > Signed-off-by: Thomas Gleixner<tglx@linutronix.de> > Signed-off-by: John Stultz<johnstul@us.ibm.com> > --- > kernel/time/timekeeping.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c > index 269b1fe..3447cfa 100644 > --- a/kernel/time/timekeeping.c > +++ b/kernel/time/timekeeping.c > @@ -717,6 +717,7 @@ static void timekeeping_resume(void) > timekeeper.clock->cycle_last = timekeeper.clock->read(timekeeper.clock); > timekeeper.ntp_error = 0; > timekeeping_suspended = 0; > + timekeeping_update(false); > write_sequnlock_irqrestore(&timekeeper.lock, flags); > > touch_softlockup_watchdog(); -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 269b1fe..3447cfa 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -717,6 +717,7 @@ static void timekeeping_resume(void) timekeeper.clock->cycle_last = timekeeper.clock->read(timekeeper.clock); timekeeper.ntp_error = 0; timekeeping_suspended = 0; + timekeeping_update(false); write_sequnlock_irqrestore(&timekeeper.lock, flags); touch_softlockup_watchdog();