diff options
| author | Russell King <rmk+kernel@armlinux.org.uk> | 2016-08-31 06:17:50 -0400 |
|---|---|---|
| committer | Russell King <rmk+kernel@armlinux.org.uk> | 2016-09-22 04:38:57 -0400 |
| commit | a4941191235e0fee2dd8bad3b7c61478f229c962 (patch) | |
| tree | dceac7aae8fb83d0771134a1dbf6837976bdacb3 /drivers/pcmcia | |
| parent | 45ca7536d4f9e803c27be113b17c4cdaa12cc960 (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.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) | |||
| 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) { |
