ACPI: APEI: explicit init of HEST and GHES in apci_init()
authorShuai Xue <xueshuai@linux.alibaba.com>
Sun, 27 Feb 2022 12:25:45 +0000 (20:25 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 3 Mar 2022 19:24:22 +0000 (20:24 +0100)
commitdc4e8c07e9e2f69387579c49caca26ba239f7270
tree7f5ad8468e2363490d8a6b71251559c362fbf272
parent7e57714cd0ad2d5bb90e50b5096a0e671dec1ef3
ACPI: APEI: explicit init of 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