diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-15 10:46:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-15 10:46:36 -0400 |
commit | e126c7b6bbb0c5b5fc3ecf2fd1ae67c803b747cc (patch) | |
tree | 627ae2a512194ed3cb9f0720f14706dd9d76ec16 /arch | |
parent | 22b1a9203ea634ac0ee5240e021613da3328275f (diff) | |
parent | 220ddc0847ebd42d18ee78c7e1c2f4c2e3be637d (diff) |
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
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/kernel/udbg.c | 8 | ||||
-rw-r--r-- | arch/powerpc/platforms/powermac/setup.c | 13 | ||||
-rw-r--r-- | arch/powerpc/platforms/powermac/smp.c | 1 |
3 files changed, 19 insertions, 3 deletions
diff --git a/arch/powerpc/kernel/udbg.c b/arch/powerpc/kernel/udbg.c index 87703df87509..cbca1df8bc60 100644 --- a/arch/powerpc/kernel/udbg.c +++ b/arch/powerpc/kernel/udbg.c | |||
@@ -151,12 +151,18 @@ static struct console udbg_console = { | |||
151 | 151 | ||
152 | static int early_console_initialized; | 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 | void register_early_udbg_console(void) | 158 | void register_early_udbg_console(void) |
156 | { | 159 | { |
157 | if (early_console_initialized) | 160 | if (early_console_initialized) |
158 | return; | 161 | return; |
159 | 162 | ||
163 | if (!udbg_putc) | ||
164 | return; | ||
165 | |||
160 | if (strstr(boot_command_line, "udbg-immortal")) { | 166 | if (strstr(boot_command_line, "udbg-immortal")) { |
161 | printk(KERN_INFO "early console immortal !\n"); | 167 | printk(KERN_INFO "early console immortal !\n"); |
162 | udbg_console.flags &= ~CON_BOOT; | 168 | udbg_console.flags &= ~CON_BOOT; |
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c index 07b1c4ec428d..956571526a57 100644 --- a/arch/powerpc/platforms/powermac/setup.c +++ b/arch/powerpc/platforms/powermac/setup.c | |||
@@ -363,8 +363,19 @@ static void __init pmac_setup_arch(void) | |||
363 | smp_ops = &core99_smp_ops; | 363 | smp_ops = &core99_smp_ops; |
364 | } | 364 | } |
365 | #ifdef CONFIG_PPC32 | 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 | smp_ops = &psurge_smp_ops; | 377 | smp_ops = &psurge_smp_ops; |
378 | } | ||
368 | #endif | 379 | #endif |
369 | #endif /* CONFIG_SMP */ | 380 | #endif /* CONFIG_SMP */ |
370 | 381 | ||
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c index 686ed82bde79..cb2d894541c6 100644 --- a/arch/powerpc/platforms/powermac/smp.c +++ b/arch/powerpc/platforms/powermac/smp.c | |||
@@ -317,7 +317,6 @@ static int __init smp_psurge_probe(void) | |||
317 | ncpus = NR_CPUS; | 317 | ncpus = NR_CPUS; |
318 | for (i = 1; i < ncpus ; ++i) { | 318 | for (i = 1; i < ncpus ; ++i) { |
319 | cpu_set(i, cpu_present_map); | 319 | cpu_set(i, cpu_present_map); |
320 | cpu_set(i, cpu_possible_map); | ||
321 | set_hard_smp_processor_id(i, i); | 320 | set_hard_smp_processor_id(i, i); |
322 | } | 321 | } |
323 | 322 | ||