diff options
author | Yong Zhang <yong.zhang@windriver.com> | 2012-07-19 03:13:53 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2012-07-19 05:23:44 -0400 |
commit | b9a09a0660aa9174e489ac531244680971950ef8 (patch) | |
tree | 48868fe81c6e29b1df7e09386b40d6c1115094e5 /arch/mips/kernel/smp.c | |
parent | 5309bdac7029c7d8659d6653761f3402e17ed1ab (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.c | 4 |
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 | ||