Commit e126c7b6 authored by Linus Torvalds's avatar Linus Torvalds

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
parents 22b1a920 220ddc08
...@@ -151,12 +151,18 @@ static struct console udbg_console = { ...@@ -151,12 +151,18 @@ static struct console udbg_console = {
static int early_console_initialized; static int early_console_initialized;
/* called by setup_system */ /*
* Called by setup_system after ppc_md->probe and ppc_md->early_init.
* Call it again after setting udbg_putc in ppc_md->setup_arch.
*/
void register_early_udbg_console(void) void register_early_udbg_console(void)
{ {
if (early_console_initialized) if (early_console_initialized)
return; return;
if (!udbg_putc)
return;
if (strstr(boot_command_line, "udbg-immortal")) { if (strstr(boot_command_line, "udbg-immortal")) {
printk(KERN_INFO "early console immortal !\n"); printk(KERN_INFO "early console immortal !\n");
udbg_console.flags &= ~CON_BOOT; udbg_console.flags &= ~CON_BOOT;
......
...@@ -363,8 +363,19 @@ static void __init pmac_setup_arch(void) ...@@ -363,8 +363,19 @@ static void __init pmac_setup_arch(void)
smp_ops = &core99_smp_ops; smp_ops = &core99_smp_ops;
} }
#ifdef CONFIG_PPC32 #ifdef CONFIG_PPC32
else else {
/*
* We have to set bits in cpu_possible_map here since the
* secondary CPU(s) aren't in the device tree, and
* setup_per_cpu_areas only allocates per-cpu data for
* CPUs in the cpu_possible_map.
*/
int cpu;
for (cpu = 1; cpu < 4 && cpu < NR_CPUS; ++cpu)
cpu_set(cpu, cpu_possible_map);
smp_ops = &psurge_smp_ops; smp_ops = &psurge_smp_ops;
}
#endif #endif
#endif /* CONFIG_SMP */ #endif /* CONFIG_SMP */
......
...@@ -317,7 +317,6 @@ static int __init smp_psurge_probe(void) ...@@ -317,7 +317,6 @@ static int __init smp_psurge_probe(void)
ncpus = NR_CPUS; ncpus = NR_CPUS;
for (i = 1; i < ncpus ; ++i) { for (i = 1; i < ncpus ; ++i) {
cpu_set(i, cpu_present_map); cpu_set(i, cpu_present_map);
cpu_set(i, cpu_possible_map);
set_hard_smp_processor_id(i, i); set_hard_smp_processor_id(i, i);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment