Merge tag 'acpi-6.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 20 Oct 2023 20:47:05 +0000 (13:47 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 20 Oct 2023 20:47:05 +0000 (13:47 -0700)
Pull ACPI fixes from Rafael Wysocki:
 "These fix the ACPI initialization ordering on ARM and ACPI IRQ
  management in the cases when irq_create_fwspec_mapping() fails.

  Specifics:

   - Fix ACPI initialization ordering on ARM that was changed
     incorrectly during the 6.5 development cycle (Hanjun Guo)

   - Make acpi_register_gsi() return an error code as appropriate when
     irq_create_fwspec_mapping() returns 0 on failure (Sunil V L)"

* tag 'acpi-6.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  ACPI: bus: Move acpi_arm_init() to the place of after acpi_ghes_init()
  ACPI: irq: Fix incorrect return value in acpi_register_gsi()

drivers/acpi/bus.c
drivers/acpi/irq.c

index f41dda2..a4aa53b 100644 (file)
@@ -1410,10 +1410,10 @@ static int __init acpi_init(void)
        acpi_init_ffh();
 
        pci_mmcfg_late_init();
-       acpi_arm_init();
        acpi_viot_early_init();
        acpi_hest_init();
        acpi_ghes_init();
+       acpi_arm_init();
        acpi_scan_init();
        acpi_ec_init();
        acpi_debugfs_init();
index c2c786e..1687483 100644 (file)
@@ -57,6 +57,7 @@ int acpi_register_gsi(struct device *dev, u32 gsi, int trigger,
                      int polarity)
 {
        struct irq_fwspec fwspec;
+       unsigned int irq;
 
        fwspec.fwnode = acpi_get_gsi_domain_id(gsi);
        if (WARN_ON(!fwspec.fwnode)) {
@@ -68,7 +69,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);