Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull timer fixes from Thomas Gleixner:

- Trivial: unused variable removal

- Posix-timers: Add the clock ID to the new proc interface to make it
useful. The interface is new and should be functional when we reach
the final 3.10 release.

- Cure a false positive warning in the tick code introduced by the
overhaul in 3.10

- Fix for a persistent clock detection regression introduced in this
cycle

* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
timekeeping: Correct run-time detection of persistent_clock.
ntp: Remove unused variable flags in __hardpps
posix-timers: Show clock ID in proc file
tick: Cure broadcast false positive pending bit warning

+16 -2
+1
fs/proc/base.c
··· 2118 2118 nstr[notify & ~SIGEV_THREAD_ID], 2119 2119 (notify & SIGEV_THREAD_ID) ? "tid" : "pid", 2120 2120 pid_nr_ns(timer->it_pid, tp->ns)); 2121 + seq_printf(m, "ClockID: %d\n", timer->it_clock); 2121 2122 2122 2123 return 0; 2123 2124 }
-1
kernel/time/ntp.c
··· 874 874 void __hardpps(const struct timespec *phase_ts, const struct timespec *raw_ts) 875 875 { 876 876 struct pps_normtime pts_norm, freq_norm; 877 - unsigned long flags; 878 877 879 878 pts_norm = pps_normalize_ts(*phase_ts); 880 879
+7 -1
kernel/time/tick-broadcast.c
··· 511 511 } 512 512 } 513 513 514 + /* 515 + * Remove the current cpu from the pending mask. The event is 516 + * delivered immediately in tick_do_broadcast() ! 517 + */ 518 + cpumask_clear_cpu(smp_processor_id(), tick_broadcast_pending_mask); 519 + 514 520 /* Take care of enforced broadcast requests */ 515 521 cpumask_or(tmpmask, tmpmask, tick_broadcast_force_mask); 516 522 cpumask_clear(tick_broadcast_force_mask); ··· 581 575 582 576 raw_spin_lock_irqsave(&tick_broadcast_lock, flags); 583 577 if (reason == CLOCK_EVT_NOTIFY_BROADCAST_ENTER) { 584 - WARN_ON_ONCE(cpumask_test_cpu(cpu, tick_broadcast_pending_mask)); 585 578 if (!cpumask_test_and_set_cpu(cpu, tick_broadcast_oneshot_mask)) { 579 + WARN_ON_ONCE(cpumask_test_cpu(cpu, tick_broadcast_pending_mask)); 586 580 clockevents_set_mode(dev, CLOCK_EVT_MODE_SHUTDOWN); 587 581 /* 588 582 * We only reprogram the broadcast timer if we
+8
kernel/time/timekeeping.c
··· 975 975 976 976 read_persistent_clock(&timekeeping_suspend_time); 977 977 978 + /* 979 + * On some systems the persistent_clock can not be detected at 980 + * timekeeping_init by its return value, so if we see a valid 981 + * value returned, update the persistent_clock_exists flag. 982 + */ 983 + if (timekeeping_suspend_time.tv_sec || timekeeping_suspend_time.tv_nsec) 984 + persistent_clock_exist = true; 985 + 978 986 raw_spin_lock_irqsave(&timekeeper_lock, flags); 979 987 write_seqcount_begin(&timekeeper_seq); 980 988 timekeeping_forward_now(tk);