提交 e38d523f 编写于 作者: B Ben Dooks

[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: NBen Dooks <ben-linux@fluff.org>
上级 29210475
...@@ -18,6 +18,9 @@ static int irqmap_cats[] __initdata = { IRQ_PCI, IRQ_IN0, IRQ_IN1, IRQ_IN3 }; ...@@ -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) 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) if (dev->irq >= 128)
return dev->irq & 0x1f; return dev->irq & 0x1f;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册