driver core: platform: Make clear error code used for missed IRQ
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 31 Mar 2021 14:59:36 +0000 (17:59 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 Apr 2021 15:02:22 +0000 (17:02 +0200)
We have few code paths where same error code is assigned and
returned for missed IRQ. Unify that under single error path.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20210331145937.35980-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/platform.c

index 6e1f8e0..9cd34de 100644 (file)
@@ -192,7 +192,7 @@ int platform_get_irq_optional(struct platform_device *dev, unsigned int num)
 #ifdef CONFIG_SPARC
        /* sparc does not have irqs represented as IORESOURCE_IRQ resources */
        if (!dev || num >= dev->archdata.num_irqs)
-               return -ENXIO;
+               goto out_not_found;
        ret = dev->archdata.irqs[num];
        goto out;
 #else
@@ -223,10 +223,8 @@ int platform_get_irq_optional(struct platform_device *dev, unsigned int num)
                struct irq_data *irqd;
 
                irqd = irq_get_irq_data(r->start);
-               if (!irqd) {
-                       ret = -ENXIO;
-                       goto out;
-               }
+               if (!irqd)
+                       goto out_not_found;
                irqd_set_trigger_type(irqd, r->flags & IORESOURCE_BITS);
        }
 
@@ -249,8 +247,9 @@ int platform_get_irq_optional(struct platform_device *dev, unsigned int num)
                        goto out;
        }
 
-       ret = -ENXIO;
 #endif
+out_not_found:
+       ret = -ENXIO;
 out:
        WARN(ret == 0, "0 is an invalid IRQ number\n");
        return ret;