diff options
| author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2004-10-28 23:21:40 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-10-28 23:21:40 -0700 |
| commit | c87fda50284ebd6bf266334e28f6954484bf197d (patch) | |
| tree | bb5f9946897710eab83674935b9ddc359ec8762c /arch/ppc/syslib | |
| parent | af200e5a4cb0acf805769a6d8282e775cea3ea7e (diff) | |
[PATCH] ppc32: Fix boot on PowerMac
Tom's recent irq patch broke PowerMac (and possibly others). I think he
forgot that PReP, CHRP and PowerMac are all built together in a single
kernel image, thus all of those arch_initcall's will end up beeing called,
even on the wrong machine...
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/ppc/syslib')
| -rw-r--r-- | arch/ppc/syslib/i8259.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/ppc/syslib/i8259.c b/arch/ppc/syslib/i8259.c index d0419fdc0efc..eb309d91e8d9 100644 --- a/arch/ppc/syslib/i8259.c +++ b/arch/ppc/syslib/i8259.c @@ -13,6 +13,7 @@ unsigned char cached_8259[2] = { 0xff, 0xff }; static spinlock_t i8259_lock = SPIN_LOCK_UNLOCKED; int i8259_pic_irq_offset; +static int i8259_present; /* * Acknowledge the IRQ using either the PCI host bridge's interrupt @@ -154,6 +155,9 @@ static struct resource pic_edgectrl_iores = { static int __init i8259_hook_cascade(void) { + if (!i8259_present) + return 0; + /* reserve our resources */ request_irq( i8259_pic_irq_offset + 2, no_action, SA_INTERRUPT, "82c59 secondary cascade", NULL ); @@ -201,4 +205,6 @@ i8259_init(long intack_addr) if (intack_addr != 0) pci_intack = ioremap(intack_addr, 1); + + i8259_present = 1; } |
