diff options
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r-- | arch/arm/kernel/process.c | 4 | ||||
-rw-r--r-- | arch/arm/kernel/smp.c | 14 | ||||
-rw-r--r-- | arch/arm/kernel/traps.c | 12 |
3 files changed, 16 insertions, 14 deletions
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index bbea636ff687..409db6d5ec99 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
@@ -131,7 +131,6 @@ void machine_halt(void) | |||
131 | { | 131 | { |
132 | } | 132 | } |
133 | 133 | ||
134 | EXPORT_SYMBOL(machine_halt); | ||
135 | 134 | ||
136 | void machine_power_off(void) | 135 | void machine_power_off(void) |
137 | { | 136 | { |
@@ -139,7 +138,6 @@ void machine_power_off(void) | |||
139 | pm_power_off(); | 138 | pm_power_off(); |
140 | } | 139 | } |
141 | 140 | ||
142 | EXPORT_SYMBOL(machine_power_off); | ||
143 | 141 | ||
144 | void machine_restart(char * __unused) | 142 | void machine_restart(char * __unused) |
145 | { | 143 | { |
@@ -169,8 +167,6 @@ void machine_restart(char * __unused) | |||
169 | while (1); | 167 | while (1); |
170 | } | 168 | } |
171 | 169 | ||
172 | EXPORT_SYMBOL(machine_restart); | ||
173 | |||
174 | void __show_regs(struct pt_regs *regs) | 170 | void __show_regs(struct pt_regs *regs) |
175 | { | 171 | { |
176 | unsigned long flags = condition_codes(regs); | 172 | unsigned long flags = condition_codes(regs); |
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'); |
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index df2cb06ce424..d571c37ac30c 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
@@ -248,16 +248,20 @@ static DEFINE_SPINLOCK(undef_lock); | |||
248 | 248 | ||
249 | void register_undef_hook(struct undef_hook *hook) | 249 | void register_undef_hook(struct undef_hook *hook) |
250 | { | 250 | { |
251 | spin_lock_irq(&undef_lock); | 251 | unsigned long flags; |
252 | |||
253 | spin_lock_irqsave(&undef_lock, flags); | ||
252 | list_add(&hook->node, &undef_hook); | 254 | list_add(&hook->node, &undef_hook); |
253 | spin_unlock_irq(&undef_lock); | 255 | spin_unlock_irqrestore(&undef_lock, flags); |
254 | } | 256 | } |
255 | 257 | ||
256 | void unregister_undef_hook(struct undef_hook *hook) | 258 | void unregister_undef_hook(struct undef_hook *hook) |
257 | { | 259 | { |
258 | spin_lock_irq(&undef_lock); | 260 | unsigned long flags; |
261 | |||
262 | spin_lock_irqsave(&undef_lock, flags); | ||
259 | list_del(&hook->node); | 263 | list_del(&hook->node); |
260 | spin_unlock_irq(&undef_lock); | 264 | spin_unlock_irqrestore(&undef_lock, flags); |
261 | } | 265 | } |
262 | 266 | ||
263 | asmlinkage void do_undefinstr(struct pt_regs *regs) | 267 | asmlinkage void do_undefinstr(struct pt_regs *regs) |