|
@@ -814,7 +814,12 @@ hrtimer_start(struct hrtimer *timer, ktime_t tim, const enum hrtimer_mode mode)
|
|
|
|
|
|
timer_stats_hrtimer_set_start_info(timer);
|
|
|
|
|
|
- enqueue_hrtimer(timer, new_base, base == new_base);
|
|
|
+ /*
|
|
|
+ * Only allow reprogramming if the new base is on this CPU.
|
|
|
+ * (it might still be on another CPU if the timer was pending)
|
|
|
+ */
|
|
|
+ enqueue_hrtimer(timer, new_base,
|
|
|
+ new_base->cpu_base == &__get_cpu_var(hrtimer_bases));
|
|
|
|
|
|
unlock_hrtimer_base(timer, &flags);
|
|
|
|