ACPI: APEI: explicit init HEST and GHES in apci_init()
authorShuai Xue <xueshuai@linux.alibaba.com>
Sat, 22 Jan 2022 05:26:17 +0000 (13:26 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 14 Feb 2022 18:44:45 +0000 (19:44 +0100)
commitf521a6e687d139e5d33a3d92f5ba4cd0a825cc66
tree5983ec74c57b86086259ba8279f15ffd8302bfde
parent754e0b0e35608ed5206d6a67a791563c631cec07
ACPI: APEI: explicit init HEST and GHES in apci_init()

From commit e147133a42cb ("ACPI / APEI: Make hest.c manage the estatus
memory pool") was merged, ghes_init() relies on acpi_hest_init() to manage
the estatus memory pool. On the other hand, ghes_init() relies on
sdei_init() to detect the SDEI version and (un)register events. The
dependencies are as follows:

    ghes_init() => acpi_hest_init() => acpi_bus_init() => acpi_init()
    ghes_init() => sdei_init()

HEST is not PCI-specific and initcall ordering is implicit and not
well-defined within a level.

Based on above, remove acpi_hest_init() from acpi_pci_root_init() and
convert ghes_init() and sdei_init() from initcalls to explicit calls in the
following order:

    acpi_hest_init()
    ghes_init()
        sdei_init()

Signed-off-by: Shuai Xue <xueshuai@linux.alibaba.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/apei/ghes.c
drivers/acpi/bus.c
drivers/acpi/pci_root.c
drivers/firmware/Kconfig
drivers/firmware/arm_sdei.c
include/acpi/apei.h
include/linux/arm_sdei.h