From: Ben Dooks Date: Fri, 8 Aug 2008 20:22:35 +0000 (+0100) Subject: [ARM] CATS: Do not try and map bad PCI IRQ numbers X-Git-Tag: v2.6.27-rc4~54^2~17^2~5 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=e38d523fd0932a5d4ef2865360d8828efcf05392;p=linux-2.6-omap-h63xx.git [ARM] CATS: Do not try and map bad PCI IRQ numbers The cats_map_irq() function in the Simtec CATS support code is mapping IRQ 255 (invalid IRQ) into what is a supposedly valid interrupt numner which can cause problems with other devices then seeing an interrupt they cannot claim. If the IRQ number if >= 255, then return -1 as this is not something we can map. Signed-off-by: Ben Dooks --- diff --git a/arch/arm/mach-footbridge/cats-pci.c b/arch/arm/mach-footbridge/cats-pci.c index 35eb232a649..ae3e1c8c758 100644 --- a/arch/arm/mach-footbridge/cats-pci.c +++ b/arch/arm/mach-footbridge/cats-pci.c @@ -18,6 +18,9 @@ static int irqmap_cats[] __initdata = { IRQ_PCI, IRQ_IN0, IRQ_IN1, IRQ_IN3 }; static int __init cats_map_irq(struct pci_dev *dev, u8 slot, u8 pin) { + if (dev->irq >= 255) + return -1; /* not a valid interrupt. */ + if (dev->irq >= 128) return dev->irq & 0x1f;