• Andrew Morton's avatar
    [PATCH] ppc64: avoid bogus real IRQ numbers · a5d436c4
    Andrew Morton authored
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    
    Early in the boot process on pSeries machines, we look in the Open Firmware
    device tree for information about the interrupt assignments, and assign
    virtual IRQ numbers for each physical IRQ.  There is currently a couple of
    bugs in this code which result in us assigning virtual IRQs for nonexistent
    physical IRQs.  This causes problems when we call the firmware to enable or
    disable those nonexistent physical IRQs.  Some versions at least of the
    firmware will hit an assertion failure and crash the machine when this
    happens.
    
    This patch fixes the bugs and ensures that we don't try and use nonexistent
    physical IRQ numbers.  One bug was that we were mapping ISA interrupts,
    which is unnecessary since virtual IRQ numbers 0 - 15 are reserved for
    them.  The other was that when we had a PCI interrupt (which is always in
    the range 1 to 4, corresponding to INTA to INTD) which didn't have a
    mapping in the PCI host bridge above it, we were just using the original
    number (usually 1) rather than ignoring it.
    a5d436c4
prom.c 87.9 KB