aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/timer.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/timer.c')
-rw-r--r--kernel/timer.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/timer.c b/kernel/timer.c
index 8ad384253ef2..797cccb86431 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -862,6 +862,8 @@ int do_settimeofday(struct timespec *tv)
862 clock->error = 0; 862 clock->error = 0;
863 ntp_clear(); 863 ntp_clear();
864 864
865 update_vsyscall(&xtime, clock);
866
865 write_sequnlock_irqrestore(&xtime_lock, flags); 867 write_sequnlock_irqrestore(&xtime_lock, flags);
866 868
867 /* signal hrtimers about time change */ 869 /* signal hrtimers about time change */
@@ -997,6 +999,9 @@ static int timekeeping_resume(struct sys_device *dev)
997 write_sequnlock_irqrestore(&xtime_lock, flags); 999 write_sequnlock_irqrestore(&xtime_lock, flags);
998 1000
999 touch_softlockup_watchdog(); 1001 touch_softlockup_watchdog();
1002
1003 clockevents_notify(CLOCK_EVT_NOTIFY_RESUME, NULL);
1004
1000 /* Resume hrtimers */ 1005 /* Resume hrtimers */
1001 clock_was_set(); 1006 clock_was_set();
1002 1007
@@ -1011,6 +1016,9 @@ static int timekeeping_suspend(struct sys_device *dev, pm_message_t state)
1011 timekeeping_suspended = 1; 1016 timekeeping_suspended = 1;
1012 timekeeping_suspend_time = read_persistent_clock(); 1017 timekeeping_suspend_time = read_persistent_clock();
1013 write_sequnlock_irqrestore(&xtime_lock, flags); 1018 write_sequnlock_irqrestore(&xtime_lock, flags);
1019
1020 clockevents_notify(CLOCK_EVT_NOTIFY_SUSPEND, NULL);
1021
1014 return 0; 1022 return 0;
1015} 1023}
1016 1024