ACPI / x86: boot: Propagate error code in acpi_gsi_to_irq()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 2 Jan 2018 14:08:36 +0000 (16:08 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 5 Jan 2018 13:10:24 +0000 (14:10 +0100)
acpi_get_override_irq() followed by acpi_register_gsi() returns negative
error code on failure.

Propagate it from acpi_gsi_to_irq() to callers.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
[ rjw : Subject/changelog ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
arch/x86/kernel/acpi/boot.c

index 4bf004bab4b25af9c756bfc4f9d86397aaee5e28..ec3a286163c37aac183489be3a1cbf3312425d59 100644 (file)
@@ -619,17 +619,17 @@ int acpi_gsi_to_irq(u32 gsi, unsigned int *irqp)
        }
 
        rc = acpi_get_override_irq(gsi, &trigger, &polarity);
-       if (rc == 0) {
-               trigger = trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE;
-               polarity = polarity ? ACPI_ACTIVE_LOW : ACPI_ACTIVE_HIGH;
-               irq = acpi_register_gsi(NULL, gsi, trigger, polarity);
-               if (irq >= 0) {
-                       *irqp = irq;
-                       return 0;
-               }
-       }
+       if (rc)
+               return rc;
 
-       return -1;
+       trigger = trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE;
+       polarity = polarity ? ACPI_ACTIVE_LOW : ACPI_ACTIVE_HIGH;
+       irq = acpi_register_gsi(NULL, gsi, trigger, polarity);
+       if (irq < 0)
+               return irq;
+
+       *irqp = irq;
+       return 0;
 }
 EXPORT_SYMBOL_GPL(acpi_gsi_to_irq);