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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Aug 2022 12:23:11 +0000 (14:23 +0200)
commit335852f7a9765a4963e5883c0c4655a3dad2b73f
treeb1eda25ac7c4a72f64191bab975c1758270a9996
parent6dc72d0181b461086d69155ec06835633a701ba4
ACPI: APEI: explicit init of HEST and GHES in apci_init()

[ Upstream commit dc4e8c07e9e2f69387579c49caca26ba239f7270 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
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