aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@armlinux.org.uk>2016-08-31 06:17:50 -0400
committerRussell King <rmk+kernel@armlinux.org.uk>2016-09-22 04:38:57 -0400
commita4941191235e0fee2dd8bad3b7c61478f229c962 (patch)
treedceac7aae8fb83d0771134a1dbf6837976bdacb3 /drivers/pcmcia
parent45ca7536d4f9e803c27be113b17c4cdaa12cc960 (diff)
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>
Diffstat (limited to 'drivers/pcmcia')
-rw-r--r--drivers/pcmcia/soc_common.c10
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)
179 if (skt->stat[i].desc) { 179 if (skt->stat[i].desc) {
180 int irq = gpiod_to_irq(skt->stat[i].desc); 180 int irq = gpiod_to_irq(skt->stat[i].desc);
181 181
182 if (i == SOC_STAT_RDY) 182 if (irq > 0) {
183 skt->socket.pci_irq = irq; 183 if (i == SOC_STAT_RDY)
184 else 184 skt->socket.pci_irq = irq;
185 skt->stat[i].irq = irq; 185 else
186 skt->stat[i].irq = irq;
187 }
186 } 188 }
187 189
188 if (skt->stat[i].irq) { 190 if (skt->stat[i].irq) {