summaryrefslogtreecommitdiffstats
path: root/arch/parisc/kernel/smp.c
diff options
context:
space:
mode:
authorSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>2012-05-15 21:02:17 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-16 03:16:57 +0200
commitec2e0f9811a2c667d06feecb413c57f74c6b84f4 (patch)
treebb9a9ead6f9fd170935910b87f188e6028c8f259 /arch/parisc/kernel/smp.c
parentgenirq: export handle_edge_irq() and irq_to_desc() (diff)
downloadlinux-ec2e0f9811a2c667d06feecb413c57f74c6b84f4.tar.xz
linux-ec2e0f9811a2c667d06feecb413c57f74c6b84f4.zip
parisc/CPU hotplug: Add missing call to notify_cpu_starting()
The scheduler depends on receiving the CPU_STARTING notification, without which we end up into a lot of trouble. So add the missing call to notify_cpu_starting() in the bringup code. Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com> Acked-and-Tested-by: Mikulas Patocka <mpatocka@redhat.com> Acked-and-Tested-by: Tobias Ulmer <tobiasu@tmux.org> Tested-by: John David Anglin <dave.anglin@bell.net> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/parisc/kernel/smp.c')
-rw-r--r--arch/parisc/kernel/smp.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/parisc/kernel/smp.c b/arch/parisc/kernel/smp.c
index 0bb1d63907f8..4dc7b7942b4c 100644
--- a/arch/parisc/kernel/smp.c
+++ b/arch/parisc/kernel/smp.c
@@ -31,6 +31,7 @@
#include <linux/delay.h>
#include <linux/bitops.h>
#include <linux/ftrace.h>
+#include <linux/cpu.h>
#include <linux/atomic.h>
#include <asm/current.h>
@@ -295,8 +296,13 @@ smp_cpu_init(int cpunum)
printk(KERN_CRIT "CPU#%d already initialized!\n", cpunum);
machine_halt();
- }
+ }
+
+ notify_cpu_starting(cpunum);
+
+ ipi_call_lock();
set_cpu_online(cpunum, true);
+ ipi_call_unlock();
/* Initialise the idle task for this CPU */
atomic_inc(&init_mm.mm_count);