gpio: idt3243x: Fix IRQ check in idt_gpio_probe
authorMiaoqian Lin <linmq006@gmail.com>
Fri, 14 Jan 2022 06:51:24 +0000 (06:51 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jan 2022 10:05:31 +0000 (11:05 +0100)
commit 30fee1d7462a446ade399c0819717a830cbdca69 upstream.

platform_get_irq() returns negative error number instead 0 on failure.
And the doc of platform_get_irq() provides a usage example:

    int irq = platform_get_irq(pdev, 0);
    if (irq < 0)
        return irq;

Fix the check of return value to catch errors correctly.

Fixes: 4195926aedca ("gpio: Add support for IDT 79RC3243x GPIO controller")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpio/gpio-idt3243x.c

index 50003ad2e58981c3b4ce6bc1546af5e922adfc75..08493b05be2dac6be1e2bd67bf7d2be515027616 100644 (file)
@@ -164,8 +164,8 @@ static int idt_gpio_probe(struct platform_device *pdev)
                        return PTR_ERR(ctrl->pic);
 
                parent_irq = platform_get_irq(pdev, 0);
-               if (!parent_irq)
-                       return -EINVAL;
+               if (parent_irq < 0)
+                       return parent_irq;
 
                girq = &ctrl->gc.irq;
                girq->chip = &idt_gpio_irqchip;