aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/setup_32.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel/setup_32.c')
-rw-r--r--arch/powerpc/kernel/setup_32.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c
index 44a6a3c47feb..35f8f443c14f 100644
--- a/arch/powerpc/kernel/setup_32.c
+++ b/arch/powerpc/kernel/setup_32.c
@@ -92,7 +92,8 @@ unsigned long __init early_init(unsigned long dt_ptr)
92 92
93 /* First zero the BSS -- use memset_io, some platforms don't have 93 /* First zero the BSS -- use memset_io, some platforms don't have
94 * caches on yet */ 94 * caches on yet */
95 memset_io((void __iomem *)PTRRELOC(&__bss_start), 0, _end - __bss_start); 95 memset_io((void __iomem *)PTRRELOC(&__bss_start), 0,
96 __bss_stop - __bss_start);
96 97
97 /* 98 /*
98 * Identify the CPU type and fix up code sections 99 * Identify the CPU type and fix up code sections
@@ -195,18 +196,22 @@ EXPORT_SYMBOL(nvram_sync);
195 196
196#endif /* CONFIG_NVRAM */ 197#endif /* CONFIG_NVRAM */
197 198
198static struct cpu cpu_devices[NR_CPUS]; 199static DEFINE_PER_CPU(struct cpu, cpu_devices);
199 200
200int __init ppc_init(void) 201int __init ppc_init(void)
201{ 202{
202 int i; 203 int cpu;
203 204
204 /* clear the progress line */ 205 /* clear the progress line */
205 if ( ppc_md.progress ) ppc_md.progress(" ", 0xffff); 206 if (ppc_md.progress)
207 ppc_md.progress(" ", 0xffff);
206 208
207 /* register CPU devices */ 209 /* register CPU devices */
208 for_each_possible_cpu(i) 210 for_each_possible_cpu(cpu) {
209 register_cpu(&cpu_devices[i], i); 211 struct cpu *c = &per_cpu(cpu_devices, cpu);
212 c->hotpluggable = 1;
213 register_cpu(c, cpu);
214 }
210 215
211 /* call platform init */ 216 /* call platform init */
212 if (ppc_md.init != NULL) { 217 if (ppc_md.init != NULL) {