diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-18 11:24:49 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-18 11:24:49 -0500 |
commit | 9d2cd7048b1ec21309e2d1a32bf50732eb5d5de8 (patch) | |
tree | 0fd13d51002dc3d0991cb5bdd6e026970171d457 /kernel | |
parent | 7e28b2712e5ebd8d73d25561585bc2ae77da5c30 (diff) | |
parent | 7bd36014460f793c19e7d6c94dab67b0afcfcb7f (diff) | |
download | linux-stable-9d2cd7048b1ec21309e2d1a32bf50732eb5d5de8.tar.gz linux-stable-9d2cd7048b1ec21309e2d1a32bf50732eb5d5de8.tar.bz2 linux-stable-9d2cd7048b1ec21309e2d1a32bf50732eb5d5de8.zip |
Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer fix from Ingo Molnar:
"An NTP related lockup fix"
* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
timekeeping: Fix HRTICK related deadlock from ntp lock changes
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/time/ntp.c | 6 | ||||
-rw-r--r-- | kernel/time/timekeeping.c | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c index 8f5b3b98577b..bb2215174f05 100644 --- a/kernel/time/ntp.c +++ b/kernel/time/ntp.c @@ -516,13 +516,13 @@ static void sync_cmos_clock(struct work_struct *work) schedule_delayed_work(&sync_cmos_work, timespec_to_jiffies(&next)); } -static void notify_cmos_timer(void) +void ntp_notify_cmos_timer(void) { schedule_delayed_work(&sync_cmos_work, 0); } #else -static inline void notify_cmos_timer(void) { } +void ntp_notify_cmos_timer(void) { } #endif @@ -687,8 +687,6 @@ int __do_adjtimex(struct timex *txc, struct timespec *ts, s32 *time_tai) if (!(time_status & STA_NANO)) txc->time.tv_usec /= NSEC_PER_USEC; - notify_cmos_timer(); - return result; } diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 48b9fffabdc2..947ba25a95a0 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1703,6 +1703,8 @@ int do_adjtimex(struct timex *txc) write_seqcount_end(&timekeeper_seq); raw_spin_unlock_irqrestore(&timekeeper_lock, flags); + ntp_notify_cmos_timer(); + return ret; } |