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
This commit is contained in:
commit
9d2cd7048b
3 changed files with 5 additions and 4 deletions
|
@ -141,6 +141,7 @@ extern int do_adjtimex(struct timex *);
|
|||
extern void hardpps(const struct timespec *, const struct timespec *);
|
||||
|
||||
int read_current_timer(unsigned long *timer_val);
|
||||
void ntp_notify_cmos_timer(void);
|
||||
|
||||
/* The clock frequency of the i8253/i8254 PIT */
|
||||
#define PIT_TICK_RATE 1193182ul
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue