Message ID | 20211224024336.1517858-1-jiasheng@iscas.ac.cn |
---|---|
State | New |
Headers | show |
Series | gpio: ath79: Check for error irq | expand |
diff --git a/drivers/gpio/gpio-ath79.c b/drivers/gpio/gpio-ath79.c index 678ddd375891..11f49998e56a 100644 --- a/drivers/gpio/gpio-ath79.c +++ b/drivers/gpio/gpio-ath79.c @@ -285,7 +285,13 @@ static int ath79_gpio_probe(struct platform_device *pdev) GFP_KERNEL); if (!girq->parents) return -ENOMEM; - girq->parents[0] = platform_get_irq(pdev, 0); + + err = platform_get_irq(pdev, 0); + if (err < 0) + return err; + + girq->parents[0] = err; + girq->default_type = IRQ_TYPE_NONE; girq->handler = handle_simple_irq; }
For the possible failure of the platform_get_irq(), the returned irq could be error number and will finally cause the failure of the request_irq(). Consider that platform_get_irq() can now in certain cases return -EPROBE_DEFER, and the consequences of letting request_irq() effectively convert that into -EINVAL, even at probe time rather than later on. So it might be better to check just now. Fixes: 1d473c2cb9fe ("MIPS: ath79: Move the GPIO driver to drivers/gpio") Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> --- drivers/gpio/gpio-ath79.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)