diff options
Diffstat (limited to 'kernel/timer.c')
-rw-r--r-- | kernel/timer.c | 8 |
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 | ||