diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index fb0f46f..b39b828 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -573,7 +573,8 @@ static int timekeeping_resume(struct sys_device *dev) clocksource_resume(); - write_seqlock_irqsave(&xtime_lock, flags); + local_irq_save(flags); + write_seqlock(&xtime_locks); if (timespec_compare(&ts, &timekeeping_suspend_time) > 0) { ts = timespec_sub(ts, timekeeping_suspend_time); @@ -586,7 +587,7 @@ static int timekeeping_resume(struct sys_device *dev) timekeeper.clock->cycle_last = timekeeper.clock->read(timekeeper.clock); timekeeper.ntp_error = 0; timekeeping_suspended = 0; - write_sequnlock_irqrestore(&xtime_lock, flags); + write_sequnlock(&xtime_locks); touch_softlockup_watchdog(); @@ -594,6 +595,7 @@ static int timekeeping_resume(struct sys_device *dev) /* Resume hrtimers */ hres_timers_resume(); + local_irq_restore(flags); return 0; }