aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/mips/include/asm/smp.h2
-rw-r--r--arch/mips/kernel/smp.c6
2 files changed, 5 insertions, 3 deletions
diff --git a/arch/mips/include/asm/smp.h b/arch/mips/include/asm/smp.h
index bb02fac9b4fa..2b25d1ba1ea0 100644
--- a/arch/mips/include/asm/smp.h
+++ b/arch/mips/include/asm/smp.h
@@ -45,7 +45,7 @@ extern int __cpu_logical_map[NR_CPUS];
45#define SMP_DUMP 0x8 45#define SMP_DUMP 0x8
46#define SMP_ASK_C0COUNT 0x10 46#define SMP_ASK_C0COUNT 0x10
47 47
48extern volatile cpumask_t cpu_callin_map; 48extern cpumask_t cpu_callin_map;
49 49
50/* Mask of CPUs which are currently definitely operating coherently */ 50/* Mask of CPUs which are currently definitely operating coherently */
51extern cpumask_t cpu_coherent_mask; 51extern cpumask_t cpu_coherent_mask;
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
46volatile cpumask_t cpu_callin_map; /* Bitmask of started secondaries */ 46cpumask_t cpu_callin_map; /* Bitmask of started secondaries */
47 47
48int __cpu_number_map[NR_CPUS]; /* Map physical to logical */ 48int __cpu_number_map[NR_CPUS]; /* Map physical to logical */
49EXPORT_SYMBOL(__cpu_number_map); 49EXPORT_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;