diff options
Diffstat (limited to 'arch/mn10300/kernel/smp.c')
-rw-r--r-- | arch/mn10300/kernel/smp.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/mn10300/kernel/smp.c b/arch/mn10300/kernel/smp.c index 910dddf65e44..9cd69ad6aa02 100644 --- a/arch/mn10300/kernel/smp.c +++ b/arch/mn10300/kernel/smp.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/sched.h> | 24 | #include <linux/sched.h> |
25 | #include <linux/profile.h> | 25 | #include <linux/profile.h> |
26 | #include <linux/smp.h> | 26 | #include <linux/smp.h> |
27 | #include <linux/cpu.h> | ||
27 | #include <asm/tlbflush.h> | 28 | #include <asm/tlbflush.h> |
28 | #include <asm/bitops.h> | 29 | #include <asm/bitops.h> |
29 | #include <asm/processor.h> | 30 | #include <asm/processor.h> |
@@ -38,7 +39,6 @@ | |||
38 | #include "internal.h" | 39 | #include "internal.h" |
39 | 40 | ||
40 | #ifdef CONFIG_HOTPLUG_CPU | 41 | #ifdef CONFIG_HOTPLUG_CPU |
41 | #include <linux/cpu.h> | ||
42 | #include <asm/cacheflush.h> | 42 | #include <asm/cacheflush.h> |
43 | 43 | ||
44 | static unsigned long sleep_mode[NR_CPUS]; | 44 | static unsigned long sleep_mode[NR_CPUS]; |
@@ -874,10 +874,13 @@ static void __init smp_online(void) | |||
874 | 874 | ||
875 | cpu = smp_processor_id(); | 875 | cpu = smp_processor_id(); |
876 | 876 | ||
877 | local_irq_enable(); | 877 | notify_cpu_starting(cpu); |
878 | 878 | ||
879 | ipi_call_lock(); | ||
879 | set_cpu_online(cpu, true); | 880 | set_cpu_online(cpu, true); |
880 | smp_wmb(); | 881 | ipi_call_unlock(); |
882 | |||
883 | local_irq_enable(); | ||
881 | } | 884 | } |
882 | 885 | ||
883 | /** | 886 | /** |