mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-03-05 19:18:06 +00:00
timer: Fix hotplug regression
The recent timer wheel rework removed the get/put_cpu_var() pair in the hotplug migration code, which results in: BUG: using smp_processor_id() in preemptible [00000000] code: hib.sh/2845 ... [<ffffffff810d4fa3>] timer_cpu_notify+0x53/0x12 That hunk is a leftover from an earlier iteration and went unnoticed so far. Restore the previous code which was obviously correct. Fixes: 0eeda71bc30d 'timer: Replace timer base by a cpu index' Reported-and_tested-by: Borislav Petkov <bp@alien8.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
56a94f1391
commit
24bfcb1009
@ -1566,7 +1566,7 @@ static void migrate_timers(int cpu)
|
||||
|
||||
BUG_ON(cpu_online(cpu));
|
||||
old_base = per_cpu_ptr(&tvec_bases, cpu);
|
||||
new_base = this_cpu_ptr(&tvec_bases);
|
||||
new_base = get_cpu_ptr(&tvec_bases);
|
||||
/*
|
||||
* The caller is globally serialized and nobody else
|
||||
* takes two locks at once, deadlock is not possible.
|
||||
@ -1590,6 +1590,7 @@ static void migrate_timers(int cpu)
|
||||
|
||||
spin_unlock(&old_base->lock);
|
||||
spin_unlock_irq(&new_base->lock);
|
||||
put_cpu_ptr(&tvec_bases);
|
||||
}
|
||||
|
||||
static int timer_cpu_notify(struct notifier_block *self,
|
||||
|
Loading…
x
Reference in New Issue
Block a user