Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
[POWERPC] Fix console output getting dropped on platforms without udbg_putc
[POWERPC] Fix per-cpu allocation on oldworld SMP powermacs

+19 -3
+7 -1
arch/powerpc/kernel/udbg.c
··· 151 151 152 152 static int early_console_initialized; 153 153 154 - /* called by setup_system */ 154 + /* 155 + * Called by setup_system after ppc_md->probe and ppc_md->early_init. 156 + * Call it again after setting udbg_putc in ppc_md->setup_arch. 157 + */ 155 158 void register_early_udbg_console(void) 156 159 { 157 160 if (early_console_initialized) 161 + return; 162 + 163 + if (!udbg_putc) 158 164 return; 159 165 160 166 if (strstr(boot_command_line, "udbg-immortal")) {
+12 -1
arch/powerpc/platforms/powermac/setup.c
··· 363 363 smp_ops = &core99_smp_ops; 364 364 } 365 365 #ifdef CONFIG_PPC32 366 - else 366 + else { 367 + /* 368 + * We have to set bits in cpu_possible_map here since the 369 + * secondary CPU(s) aren't in the device tree, and 370 + * setup_per_cpu_areas only allocates per-cpu data for 371 + * CPUs in the cpu_possible_map. 372 + */ 373 + int cpu; 374 + 375 + for (cpu = 1; cpu < 4 && cpu < NR_CPUS; ++cpu) 376 + cpu_set(cpu, cpu_possible_map); 367 377 smp_ops = &psurge_smp_ops; 378 + } 368 379 #endif 369 380 #endif /* CONFIG_SMP */ 370 381
-1
arch/powerpc/platforms/powermac/smp.c
··· 317 317 ncpus = NR_CPUS; 318 318 for (i = 1; i < ncpus ; ++i) { 319 319 cpu_set(i, cpu_present_map); 320 - cpu_set(i, cpu_possible_map); 321 320 set_hard_smp_processor_id(i, i); 322 321 } 323 322