Subject: hotplug-use-migrate-disable.patch From: Thomas Gleixner Date: Sun, 17 Jul 2011 19:35:29 +0200 Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.14/patches-3.14.0-rt1.tar.xz Signed-off-by: Thomas Gleixner --- kernel/cpu.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -400,14 +400,13 @@ static int __ref _cpu_down(unsigned int cpumask_andnot(cpumask, cpu_online_mask, cpumask_of(cpu)); set_cpus_allowed_ptr(current, cpumask); free_cpumask_var(cpumask); - preempt_disable(); + migrate_disable(); mycpu = smp_processor_id(); if (mycpu == cpu) { printk(KERN_ERR "Yuck! Still on unplug CPU\n!"); - preempt_enable(); + migrate_enable(); return -EBUSY; } - preempt_enable(); cpu_hotplug_begin(); err = cpu_unplug_begin(cpu); @@ -476,6 +475,7 @@ static int __ref _cpu_down(unsigned int out_release: cpu_unplug_done(cpu); out_cancel: + migrate_enable(); cpu_hotplug_done(); if (!err) cpu_notify_nofail(CPU_POST_DEAD | mod, hcpu);