can: flexcan: fix the return value handle for platform_get_irq()
authorRuan Jinjie <ruanjinjie@huawei.com>
Mon, 31 Jul 2023 07:52:52 +0000 (15:52 +0800)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Mon, 31 Jul 2023 08:12:56 +0000 (10:12 +0200)
There is no possible for platform_get_irq() to return 0
and the return value of platform_get_irq() is more sensible
to show the error reason.

Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com>
Link: https://lore.kernel.org/all/20230731075252.359965-1-ruanjinjie@huawei.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/flexcan/flexcan-core.c

index 48273d5..add39e9 100644 (file)
@@ -2089,8 +2089,8 @@ static int flexcan_probe(struct platform_device *pdev)
        }
 
        irq = platform_get_irq(pdev, 0);
-       if (irq <= 0)
-               return -ENODEV;
+       if (irq < 0)
+               return irq;
 
        regs = devm_platform_ioremap_resource(pdev, 0);
        if (IS_ERR(regs))
@@ -2167,13 +2167,13 @@ static int flexcan_probe(struct platform_device *pdev)
 
        if (priv->devtype_data.quirks & FLEXCAN_QUIRK_NR_IRQ_3) {
                priv->irq_boff = platform_get_irq(pdev, 1);
-               if (priv->irq_boff <= 0) {
-                       err = -ENODEV;
+               if (priv->irq_boff < 0) {
+                       err = priv->irq_boff;
                        goto failed_platform_get_irq;
                }
                priv->irq_err = platform_get_irq(pdev, 2);
-               if (priv->irq_err <= 0) {
-                       err = -ENODEV;
+               if (priv->irq_err < 0) {
+                       err = priv->irq_err;
                        goto failed_platform_get_irq;
                }
        }