diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-18 12:24:49 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-18 12:24:49 -0400 |
| commit | 9d2cd7048b1ec21309e2d1a32bf50732eb5d5de8 (patch) | |
| tree | 0fd13d51002dc3d0991cb5bdd6e026970171d457 /kernel | |
| parent | 7e28b2712e5ebd8d73d25561585bc2ae77da5c30 (diff) | |
| parent | 7bd36014460f793c19e7d6c94dab67b0afcfcb7f (diff) | |
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) | |||
| 516 | schedule_delayed_work(&sync_cmos_work, timespec_to_jiffies(&next)); | 516 | schedule_delayed_work(&sync_cmos_work, timespec_to_jiffies(&next)); |
| 517 | } | 517 | } |
| 518 | 518 | ||
| 519 | static void notify_cmos_timer(void) | 519 | void ntp_notify_cmos_timer(void) |
| 520 | { | 520 | { |
| 521 | schedule_delayed_work(&sync_cmos_work, 0); | 521 | schedule_delayed_work(&sync_cmos_work, 0); |
| 522 | } | 522 | } |
| 523 | 523 | ||
| 524 | #else | 524 | #else |
| 525 | static inline void notify_cmos_timer(void) { } | 525 | void ntp_notify_cmos_timer(void) { } |
| 526 | #endif | 526 | #endif |
| 527 | 527 | ||
| 528 | 528 | ||
| @@ -687,8 +687,6 @@ int __do_adjtimex(struct timex *txc, struct timespec *ts, s32 *time_tai) | |||
| 687 | if (!(time_status & STA_NANO)) | 687 | if (!(time_status & STA_NANO)) |
| 688 | txc->time.tv_usec /= NSEC_PER_USEC; | 688 | txc->time.tv_usec /= NSEC_PER_USEC; |
| 689 | 689 | ||
| 690 | notify_cmos_timer(); | ||
| 691 | |||
| 692 | return result; | 690 | return result; |
| 693 | } | 691 | } |
| 694 | 692 | ||
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) | |||
| 1703 | write_seqcount_end(&timekeeper_seq); | 1703 | write_seqcount_end(&timekeeper_seq); |
| 1704 | raw_spin_unlock_irqrestore(&timekeeper_lock, flags); | 1704 | raw_spin_unlock_irqrestore(&timekeeper_lock, flags); |
| 1705 | 1705 | ||
| 1706 | ntp_notify_cmos_timer(); | ||
| 1707 | |||
| 1706 | return ret; | 1708 | return ret; |
| 1707 | } | 1709 | } |
| 1708 | 1710 | ||
