diff options
Diffstat (limited to 'arch/mips/kernel/smp.c')
-rw-r--r-- | arch/mips/kernel/smp.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c index 193ace7955fb..faa46ebd9dda 100644 --- a/arch/mips/kernel/smp.c +++ b/arch/mips/kernel/smp.c | |||
@@ -43,7 +43,7 @@ | |||
43 | #include <asm/time.h> | 43 | #include <asm/time.h> |
44 | #include <asm/setup.h> | 44 | #include <asm/setup.h> |
45 | 45 | ||
46 | volatile cpumask_t cpu_callin_map; /* Bitmask of started secondaries */ | 46 | cpumask_t cpu_callin_map; /* Bitmask of started secondaries */ |
47 | 47 | ||
48 | int __cpu_number_map[NR_CPUS]; /* Map physical to logical */ | 48 | int __cpu_number_map[NR_CPUS]; /* Map physical to logical */ |
49 | EXPORT_SYMBOL(__cpu_number_map); | 49 | EXPORT_SYMBOL(__cpu_number_map); |
@@ -218,8 +218,10 @@ int __cpu_up(unsigned int cpu, struct task_struct *tidle) | |||
218 | /* | 218 | /* |
219 | * Trust is futile. We should really have timeouts ... | 219 | * Trust is futile. We should really have timeouts ... |
220 | */ | 220 | */ |
221 | while (!cpumask_test_cpu(cpu, &cpu_callin_map)) | 221 | while (!cpumask_test_cpu(cpu, &cpu_callin_map)) { |
222 | udelay(100); | 222 | udelay(100); |
223 | schedule(); | ||
224 | } | ||
223 | 225 | ||
224 | synchronise_count_master(cpu); | 226 | synchronise_count_master(cpu); |
225 | return 0; | 227 | return 0; |