diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c index 6d9da768604d68d22f236dbfc5d5125317a3b7fb..9200e13cf97e2751520dfe73c83f2bf91dc82e46 100644 --- a/kernel/time/hrtimer.c +++ b/kernel/time/hrtimer.c @@ -2315,8 +2315,11 @@ int hrtimers_cpu_dying(unsigned int dying_cpu) /* * The migration might have changed the first expiring softirq * timer on this CPU. Update it. + * We also need to update 'softirq_expires_next' here, because it will + * not be updated in retrigger_next_event() if high resolution mode + * and nohz are both inactive. */ - __hrtimer_get_next_event(new_base, HRTIMER_ACTIVE_SOFT); + hrtimer_update_next_event(new_base); /* Tell the other CPU to retrigger the next event */ smp_call_function_single(ncpu, retrigger_next_event, NULL, 0);