diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2016-08-31 11:17:50 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@armlinux.org.uk> | 2016-09-22 09:38:57 +0100 |
commit | a4941191235e0fee2dd8bad3b7c61478f229c962 (patch) | |
tree | dceac7aae8fb83d0771134a1dbf6837976bdacb3 | |
parent | 45ca7536d4f9e803c27be113b17c4cdaa12cc960 (diff) | |
download | linux-stable-a4941191235e0fee2dd8bad3b7c61478f229c962.tar.gz linux-stable-a4941191235e0fee2dd8bad3b7c61478f229c962.tar.bz2 linux-stable-a4941191235e0fee2dd8bad3b7c61478f229c962.zip |
pcmcia: soc_common: ignore invalid interrupts
If gpiod_to_irq() returns an invalid interrupt, we should not try to use
it as an interrupt number.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
-rw-r--r-- | drivers/pcmcia/soc_common.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/pcmcia/soc_common.c b/drivers/pcmcia/soc_common.c index e07d84a69fcc..e499c2b8d7df 100644 --- a/drivers/pcmcia/soc_common.c +++ b/drivers/pcmcia/soc_common.c @@ -179,10 +179,12 @@ static int soc_pcmcia_hw_init(struct soc_pcmcia_socket *skt) if (skt->stat[i].desc) { int irq = gpiod_to_irq(skt->stat[i].desc); - if (i == SOC_STAT_RDY) - skt->socket.pci_irq = irq; - else - skt->stat[i].irq = irq; + if (irq > 0) { + if (i == SOC_STAT_RDY) + skt->socket.pci_irq = irq; + else + skt->stat[i].irq = irq; + } } if (skt->stat[i].irq) { |