diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index f9217bf644f6f350ce2356121b55abd7f7d83e64..3d1042f82a687d77b3a5496862e40ef0742bf1de 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -273,6 +273,8 @@ static int timekeeping_resume(struct sys_device *dev) unsigned long flags; unsigned long now = read_persistent_clock(); + clocksource_resume(); + write_seqlock_irqsave(&xtime_lock, flags); if (now && (now > timekeeping_suspend_time)) { diff --git a/kernel/timer.c b/kernel/timer.c index a6c580ac084b9b507ca994bf9f0fdddc679fb40d..5ec5490f8d85ca083d3c1525fd4789fff5f3ff70 100644 --- a/kernel/timer.c +++ b/kernel/timer.c @@ -1499,8 +1499,6 @@ unregister_time_interpolator(struct time_interpolator *ti) prev = &curr->next; } - clocksource_resume(); - write_seqlock_irqsave(&xtime_lock, flags); if (ti == time_interpolator) { /* we lost the best time-interpolator: */