[PATCH] ppc64: avoid bogus real IRQ numbers
Signed-off-by: Paul 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.
Showing
Please register or sign in to comment