| From 4327b945d2f8a7f687b6e35772478510d9df8bf1 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 13 Apr 2021 16:01:00 +0200 |
| Subject: ACPI: x86: Call acpi_boot_table_init() after acpi_table_upgrade() |
| |
| From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| |
| [ Upstream commit 6998a8800d73116187aad542391ce3b2dd0f9e30 ] |
| |
| Commit 1a1c130ab757 ("ACPI: tables: x86: Reserve memory occupied by |
| ACPI tables") attempted to address an issue with reserving the memory |
| occupied by ACPI tables, but it broke the initrd-based table override |
| mechanism relied on by multiple users. |
| |
| To restore the initrd-based ACPI table override functionality, move |
| the acpi_boot_table_init() invocation in setup_arch() on x86 after |
| the acpi_table_upgrade() one. |
| |
| Fixes: 1a1c130ab757 ("ACPI: tables: x86: Reserve memory occupied by ACPI tables") |
| Reported-by: Hans de Goede <hdegoede@redhat.com> |
| Tested-by: Hans de Goede <hdegoede@redhat.com> |
| Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/x86/kernel/setup.c | 5 ++--- |
| 1 file changed, 2 insertions(+), 3 deletions(-) |
| |
| diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c |
| index df964571a6b4..54a3048ebc5b 100644 |
| --- a/arch/x86/kernel/setup.c |
| +++ b/arch/x86/kernel/setup.c |
| @@ -1046,9 +1046,6 @@ void __init setup_arch(char **cmdline_p) |
| |
| cleanup_highmap(); |
| |
| - /* Look for ACPI tables and reserve memory occupied by them. */ |
| - acpi_boot_table_init(); |
| - |
| memblock_set_current_limit(ISA_END_ADDRESS); |
| e820__memblock_setup(); |
| |
| @@ -1133,6 +1130,8 @@ void __init setup_arch(char **cmdline_p) |
| reserve_initrd(); |
| |
| acpi_table_upgrade(); |
| + /* Look for ACPI tables and reserve memory occupied by them. */ |
| + acpi_boot_table_init(); |
| |
| vsmp_init(); |
| |
| -- |
| 2.30.2 |
| |