diff options
Diffstat (limited to 'arch/arm/kernel/smp.c')
-rw-r--r-- | arch/arm/kernel/smp.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index a931409c8fe4..b2085735a2ba 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
@@ -36,7 +36,7 @@ | |||
36 | * The present bitmask indicates that the CPU is physically present. | 36 | * The present bitmask indicates that the CPU is physically present. |
37 | * The online bitmask indicates that the CPU is up and running. | 37 | * The online bitmask indicates that the CPU is up and running. |
38 | */ | 38 | */ |
39 | cpumask_t cpu_present_mask; | 39 | cpumask_t cpu_possible_map; |
40 | cpumask_t cpu_online_map; | 40 | cpumask_t cpu_online_map; |
41 | 41 | ||
42 | /* | 42 | /* |
@@ -78,7 +78,7 @@ struct smp_call_struct { | |||
78 | static struct smp_call_struct * volatile smp_call_function_data; | 78 | static struct smp_call_struct * volatile smp_call_function_data; |
79 | static DEFINE_SPINLOCK(smp_call_function_lock); | 79 | static DEFINE_SPINLOCK(smp_call_function_lock); |
80 | 80 | ||
81 | int __init __cpu_up(unsigned int cpu) | 81 | int __cpuinit __cpu_up(unsigned int cpu) |
82 | { | 82 | { |
83 | struct task_struct *idle; | 83 | struct task_struct *idle; |
84 | pgd_t *pgd; | 84 | pgd_t *pgd; |
@@ -159,7 +159,7 @@ int __init __cpu_up(unsigned int cpu) | |||
159 | * This is the secondary CPU boot entry. We're using this CPUs | 159 | * This is the secondary CPU boot entry. We're using this CPUs |
160 | * idle thread stack, but a set of temporary page tables. | 160 | * idle thread stack, but a set of temporary page tables. |
161 | */ | 161 | */ |
162 | asmlinkage void __init secondary_start_kernel(void) | 162 | asmlinkage void __cpuinit secondary_start_kernel(void) |
163 | { | 163 | { |
164 | struct mm_struct *mm = &init_mm; | 164 | struct mm_struct *mm = &init_mm; |
165 | unsigned int cpu = smp_processor_id(); | 165 | unsigned int cpu = smp_processor_id(); |
@@ -176,6 +176,7 @@ asmlinkage void __init secondary_start_kernel(void) | |||
176 | cpu_set(cpu, mm->cpu_vm_mask); | 176 | cpu_set(cpu, mm->cpu_vm_mask); |
177 | cpu_switch_mm(mm->pgd, mm); | 177 | cpu_switch_mm(mm->pgd, mm); |
178 | enter_lazy_tlb(mm, current); | 178 | enter_lazy_tlb(mm, current); |
179 | local_flush_tlb_all(); | ||
179 | 180 | ||
180 | cpu_init(); | 181 | cpu_init(); |
181 | 182 | ||
@@ -209,7 +210,7 @@ asmlinkage void __init secondary_start_kernel(void) | |||
209 | * Called by both boot and secondaries to move global data into | 210 | * Called by both boot and secondaries to move global data into |
210 | * per-processor storage. | 211 | * per-processor storage. |
211 | */ | 212 | */ |
212 | void __init smp_store_cpu_info(unsigned int cpuid) | 213 | void __cpuinit smp_store_cpu_info(unsigned int cpuid) |
213 | { | 214 | { |
214 | struct cpuinfo_arm *cpu_info = &per_cpu(cpu_data, cpuid); | 215 | struct cpuinfo_arm *cpu_info = &per_cpu(cpu_data, cpuid); |
215 | 216 | ||
@@ -235,7 +236,8 @@ void __init smp_prepare_boot_cpu(void) | |||
235 | { | 236 | { |
236 | unsigned int cpu = smp_processor_id(); | 237 | unsigned int cpu = smp_processor_id(); |
237 | 238 | ||
238 | cpu_set(cpu, cpu_present_mask); | 239 | cpu_set(cpu, cpu_possible_map); |
240 | cpu_set(cpu, cpu_present_map); | ||
239 | cpu_set(cpu, cpu_online_map); | 241 | cpu_set(cpu, cpu_online_map); |
240 | } | 242 | } |
241 | 243 | ||
@@ -355,7 +357,7 @@ void show_ipi_list(struct seq_file *p) | |||
355 | 357 | ||
356 | seq_puts(p, "IPI:"); | 358 | seq_puts(p, "IPI:"); |
357 | 359 | ||
358 | for_each_online_cpu(cpu) | 360 | for_each_present_cpu(cpu) |
359 | seq_printf(p, " %10lu", per_cpu(ipi_data, cpu).ipi_count); | 361 | seq_printf(p, " %10lu", per_cpu(ipi_data, cpu).ipi_count); |
360 | 362 | ||
361 | seq_putc(p, '\n'); | 363 | seq_putc(p, '\n'); |