summaryrefslogtreecommitdiffstats
path: root/kernel/cpu.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2013-01-31 13:11:14 +0100
committerThomas Gleixner <tglx@linutronix.de>2013-02-14 15:29:38 +0100
commit14e568e78f6f80ca1e27256641ddf524c7dbdc51 (patch)
tree1f75f09c7f8adfa6dd55ef9bd0b547fcaf700f45 /kernel/cpu.c
parentstop_machine: Store task reference in a separate per cpu variable (diff)
downloadlinux-14e568e78f6f80ca1e27256641ddf524c7dbdc51.tar.xz
linux-14e568e78f6f80ca1e27256641ddf524c7dbdc51.zip
stop_machine: Use smpboot threads
Use the smpboot thread infrastructure. Mark the stopper thread selfparking and park it after it has finished the take_cpu_down() work. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: Paul McKenney <paulmck@linux.vnet.ibm.com> Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com> Cc: Arjan van de Veen <arjan@infradead.org> Cc: Paul Turner <pjt@google.com> Cc: Richard Weinberger <rw@linutronix.de> Cc: Magnus Damm <magnus.damm@gmail.com> Link: http://lkml.kernel.org/r/20130131120741.686315164@linutronix.de Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/cpu.c')
-rw-r--r--kernel/cpu.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 3046a503242c..c91e30d1ef05 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -254,6 +254,8 @@ static int __ref take_cpu_down(void *_param)
return err;
cpu_notify(CPU_DYING | param->mod, param->hcpu);
+ /* Park the stopper thread */
+ kthread_park(current);
return 0;
}