|
@@ -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,
|