aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/smp.c
diff options
context:
space:
mode:
authorYong Zhang <yong.zhang@windriver.com>2012-07-19 03:13:53 -0400
committerRalf Baechle <ralf@linux-mips.org>2012-07-19 05:23:44 -0400
commitb9a09a0660aa9174e489ac531244680971950ef8 (patch)
tree48868fe81c6e29b1df7e09386b40d6c1115094e5 /arch/mips/kernel/smp.c
parent5309bdac7029c7d8659d6653761f3402e17ed1ab (diff)
MIPS: call set_cpu_online() on cpu being brought up with irq disabled
To prevent a problem as commit 5fbd036b [sched: Cleanup cpu_active madness] and commit 2baab4e9 [sched: Fix select_fallback_rq() vs cpu_active/cpu_online] try to resolve, move set_cpu_online() to the brought up CPU and with irq disabled. Signed-off-by: Yong Zhang <yong.zhang0@gmail.com> Cc: Sergei Shtylyov <sshtylyov@mvista.com> Cc: David Daney <david.daney@cavium.com> Acked-by: David Daney <david.daney@cavium.com> Patchwork: https://patchwork.linux-mips.org/patch/3851/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/smp.c')
-rw-r--r--arch/mips/kernel/smp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
index b181bbf410de..eb3e2b112a0d 100644
--- a/arch/mips/kernel/smp.c
+++ b/arch/mips/kernel/smp.c
@@ -122,6 +122,8 @@ asmlinkage __cpuinit void start_secondary(void)
122 122
123 notify_cpu_starting(cpu); 123 notify_cpu_starting(cpu);
124 124
125 set_cpu_online(cpu, true);
126
125 set_cpu_sibling_map(cpu); 127 set_cpu_sibling_map(cpu);
126 128
127 cpu_set(cpu, cpu_callin_map); 129 cpu_set(cpu, cpu_callin_map);
@@ -197,8 +199,6 @@ int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
197 while (!cpu_isset(cpu, cpu_callin_map)) 199 while (!cpu_isset(cpu, cpu_callin_map))
198 udelay(100); 200 udelay(100);
199 201
200 set_cpu_online(cpu, true);
201
202 return 0; 202 return 0;
203} 203}
204 204