]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ACPI: irq: Fix incorrect return value in acpi_register_gsi()
authorSunil V L <sunilvl@ventanamicro.com>
Mon, 16 Oct 2023 17:09:39 +0000 (22:39 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 25 Oct 2023 09:13:33 +0000 (11:13 +0200)
commit 0c21a18d5d6c6a73d098fb9b4701572370942df9 upstream.

acpi_register_gsi() should return a negative value in case of failure.

Currently, it returns the return value from irq_create_fwspec_mapping().
However, irq_create_fwspec_mapping() returns 0 for failure. Fix the
issue by returning -EINVAL if irq_create_fwspec_mapping() returns zero.

Fixes: d44fa3d46079 ("ACPI: Add support for ResourceSource/IRQ domain mapping")
Cc: 4.11+ <stable@vger.kernel.org> # 4.11+
Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
[ rjw: Rename a new local variable ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/acpi/irq.c

index 7c352cba052893bb59f135b597f797a345974cd4..8ac01375fe8fdd47452b67c09cadfaa15cafe714 100644 (file)
@@ -55,6 +55,7 @@ int acpi_register_gsi(struct device *dev, u32 gsi, int trigger,
                      int polarity)
 {
        struct irq_fwspec fwspec;
+       unsigned int irq;
 
        if (WARN_ON(!acpi_gsi_domain_id)) {
                pr_warn("GSI: No registered irqchip, giving up\n");
@@ -66,7 +67,11 @@ int acpi_register_gsi(struct device *dev, u32 gsi, int trigger,
        fwspec.param[1] = acpi_dev_get_irq_type(trigger, polarity);
        fwspec.param_count = 2;
 
-       return irq_create_fwspec_mapping(&fwspec);
+       irq = irq_create_fwspec_mapping(&fwspec);
+       if (!irq)
+               return -EINVAL;
+
+       return irq;
 }
 EXPORT_SYMBOL_GPL(acpi_register_gsi);