]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
metag: Use common outgoing-CPU-notification code
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 26 Feb 2015 22:57:25 +0000 (14:57 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 11 Mar 2015 20:22:36 +0000 (13:22 -0700)
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>
arch/metag/kernel/smp.c

index f006d2276f40abb67d6aeb2356a2f00aebcdb9fb..ac3a199e33e714d772f688b7f9620cb964d29a0f 100644 (file)
@@ -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");
 }