diff options
author | Tony Breeds <tony@bakeyournoodle.com> | 2007-06-20 01:17:29 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-06-20 08:07:38 -0400 |
commit | c5f226c7e95bf318879fb6ae02fc0dfb0f6d408c (patch) | |
tree | 229a668644f8a90ee371ec30666a0b9a865db8af | |
parent | 9ba4ace39fdfe22268daca9f28c5df384ae462cf (diff) |
[POWERPC] Fix powermac late initcall to only run on powermac
Current ppc64_defconfig kernel fails to boot on iSeries, dying with:
Unable to handle kernel paging request for data at address 0x00000000
Faulting instruction address: 0xc00000000071b258
Oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=32 iSeries
<snip>
NIP [c00000000071b258] .iSeries_src_init+0x34/0x64
LR [c000000000701bb4] .kernel_init+0x1fc/0x3bc
Call Trace:
[c000000007d0be30] [0000000000008000] 0x8000 (unreliable)
[c000000007d0bea0] [c000000000701bb4] .kernel_init+0x1fc/0x3bc
[c000000007d0bf90] [c0000000000262d4] .kernel_thread+0x4c/0x68
Instruction dump:
e922cba8 3880ffff 78840420 f8010010 f821ff91 60000000 e8090000 78095fe3
4182002c e922cb58 e862cbb0 e9290140 <e8090000> f8410028 7c0903a6 e9690010
Kernel panic - not syncing: Attempted to kill init!
This happens because some powermac code unconditionally sets
ppc_md.progress to NULL. This patch makes sure the powermac late
initcall is only run on powermac machines.
Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r-- | arch/powerpc/platforms/powermac/setup.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c index 956571526a57..7ccb9236e8b4 100644 --- a/arch/powerpc/platforms/powermac/setup.c +++ b/arch/powerpc/platforms/powermac/setup.c | |||
@@ -454,6 +454,9 @@ static int initializing = 1; | |||
454 | 454 | ||
455 | static int pmac_late_init(void) | 455 | static int pmac_late_init(void) |
456 | { | 456 | { |
457 | if (!machine_is(powermac)) | ||
458 | return -ENODEV; | ||
459 | |||
457 | initializing = 0; | 460 | initializing = 0; |
458 | /* this is udbg (which is __init) and we can later use it during | 461 | /* this is udbg (which is __init) and we can later use it during |
459 | * cpu hotplug (in smp_core99_kick_cpu) */ | 462 | * cpu hotplug (in smp_core99_kick_cpu) */ |