Merge "hrtimer: fix issue during core isolation"

This commit is contained in:
qctecmdr 2020-01-31 16:56:06 -08:00 • committed by Gerrit - the friendly Code Review server
commit cbcb2fc981

View file

@ -2073,12 +2073,6 @@ static void __migrate_hrtimers(unsigned int scpu, bool remove_pinned)
unsigned long flags;
int i;
/*
* this BH disable ensures that raise_softirq_irqoff() does
* not wakeup ksoftirqd (and acquire the pi-lock) while
* holding the cpu_base lock
*/
local_bh_disable();
local_irq_save(flags);
old_base = &per_cpu(hrtimer_bases, scpu);
new_base = this_cpu_ptr(&hrtimer_bases);
@ -2106,7 +2100,6 @@ static void __migrate_hrtimers(unsigned int scpu, bool remove_pinned)
/* Check, if we got expired work to do */
__hrtimer_peek_ahead_timers();
local_irq_restore(flags);
local_bh_enable();
}
int hrtimers_dead_cpu(unsigned int scpu)
@ -2114,7 +2107,14 @@ int hrtimers_dead_cpu(unsigned int scpu)
BUG_ON(cpu_online(scpu));
tick_cancel_sched_timer(scpu);
/*
* this BH disable ensures that raise_softirq_irqoff() does
* not wakeup ksoftirqd (and acquire the pi-lock) while
* holding the cpu_base lock
*/
local_bh_disable();
__migrate_hrtimers(scpu, true);
local_bh_enable();
return 0;
}