summaryrefslogtreecommitdiffstats
path: root/arch/metag/kernel
diff options
context:
space:
mode:
authorPaul E. McKenney2015-02-26 23:57:25 +0100
committerPaul E. McKenney2015-03-11 21:22:36 +0100
commit490ab882e2719f5e809a0cb5af7fda4620b66dca (patch)
tree58c2d3dcee2436105388fce0851dda5b3a2283d9 /arch/metag/kernel
parentblackfin: Use common outgoing-CPU-notification code (diff)
downloadkernel-qcow2-linux-490ab882e2719f5e809a0cb5af7fda4620b66dca.tar.gz
kernel-qcow2-linux-490ab882e2719f5e809a0cb5af7fda4620b66dca.tar.xz
kernel-qcow2-linux-490ab882e2719f5e809a0cb5af7fda4620b66dca.zip
metag: Use common outgoing-CPU-notification code
This commit removes the open-coded CPU-offline notification with new common code. This change avoids calling scheduler code using RCU from an offline CPU that RCU is ignoring. This commit is compatible with the existing code in not checking for timeout during a prior offline for a given CPU. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: James Hogan <james.hogan@imgtec.com> Cc: <linux-metag@vger.kernel.org>
Diffstat (limited to 'arch/metag/kernel')
-rw-r--r--arch/metag/kernel/smp.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/metag/kernel/smp.c b/arch/metag/kernel/smp.c
index f006d2276f40..ac3a199e33e7 100644
--- a/arch/metag/kernel/smp.c
+++ b/arch/metag/kernel/smp.c
@@ -261,7 +261,6 @@ int __cpu_up(unsigned int cpu, struct task_struct *idle)
}
#ifdef CONFIG_HOTPLUG_CPU
-static DECLARE_COMPLETION(cpu_killed);
/*
* __cpu_disable runs on the processor to be shutdown.
@@ -299,7 +298,7 @@ int __cpu_disable(void)
*/
void __cpu_die(unsigned int cpu)
{
- if (!wait_for_completion_timeout(&cpu_killed, msecs_to_jiffies(1)))
+ if (!cpu_wait_death(cpu, 1))
pr_err("CPU%u: unable to kill\n", cpu);
}
@@ -314,7 +313,7 @@ void cpu_die(void)
local_irq_disable();
idle_task_exit();
- complete(&cpu_killed);
+ (void)cpu_report_death();
asm ("XOR TXENABLE, D0Re0,D0Re0\n");
}