diff options
Diffstat (limited to 'arch/mips/netlogic/xlr/setup.c')
-rw-r--r-- | arch/mips/netlogic/xlr/setup.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/mips/netlogic/xlr/setup.c b/arch/mips/netlogic/xlr/setup.c index 81b1d311834f..8fca6807cab8 100644 --- a/arch/mips/netlogic/xlr/setup.c +++ b/arch/mips/netlogic/xlr/setup.c | |||
@@ -57,8 +57,9 @@ struct psb_info nlm_prom_info; | |||
57 | unsigned long nlm_common_ebase = 0x0; | 57 | unsigned long nlm_common_ebase = 0x0; |
58 | 58 | ||
59 | /* default to uniprocessor */ | 59 | /* default to uniprocessor */ |
60 | uint32_t nlm_coremask = 1, nlm_cpumask = 1; | 60 | uint32_t nlm_coremask = 1; |
61 | int nlm_threads_per_core = 1; | 61 | int nlm_threads_per_core = 1; |
62 | cpumask_t nlm_cpumask = CPU_MASK_CPU0; | ||
62 | 63 | ||
63 | static void __init nlm_early_serial_setup(void) | 64 | static void __init nlm_early_serial_setup(void) |
64 | { | 65 | { |
@@ -178,7 +179,7 @@ static void prom_add_memory(void) | |||
178 | 179 | ||
179 | void __init prom_init(void) | 180 | void __init prom_init(void) |
180 | { | 181 | { |
181 | int *argv, *envp; /* passed as 32 bit ptrs */ | 182 | int i, *argv, *envp; /* passed as 32 bit ptrs */ |
182 | struct psb_info *prom_infop; | 183 | struct psb_info *prom_infop; |
183 | 184 | ||
184 | /* truncate to 32 bit and sign extend all args */ | 185 | /* truncate to 32 bit and sign extend all args */ |
@@ -195,7 +196,10 @@ void __init prom_init(void) | |||
195 | prom_add_memory(); | 196 | prom_add_memory(); |
196 | 197 | ||
197 | #ifdef CONFIG_SMP | 198 | #ifdef CONFIG_SMP |
198 | nlm_wakeup_secondary_cpus(nlm_prom_info.online_cpu_map); | 199 | for (i = 0; i < 32; i++) |
200 | if (nlm_prom_info.online_cpu_map & (1 << i)) | ||
201 | cpumask_set_cpu(i, &nlm_cpumask); | ||
202 | nlm_wakeup_secondary_cpus(); | ||
199 | register_smp_ops(&nlm_smp_ops); | 203 | register_smp_ops(&nlm_smp_ops); |
200 | #endif | 204 | #endif |
201 | } | 205 | } |