diff options
Diffstat (limited to 'debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-for-boot-params-.patch')
-rw-r--r-- | debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-for-boot-params-.patch | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-for-boot-params-.patch b/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-for-boot-params-.patch new file mode 100644 index 000000000..d56f9f289 --- /dev/null +++ b/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-for-boot-params-.patch @@ -0,0 +1,101 @@ +From: Juergen Gross <jgross@suse.com> +Date: Wed, 10 Oct 2018 08:14:56 +0200 +Subject: x86/acpi, x86/boot: Take RSDP address for boot params if available +Origin: https://git.kernel.org/linus/e7b66d16fe41722350ba87f5788052ef53ee28bb + +In case the RSDP address in struct boot_params is specified don't try +to find the table by searching, but take the address directly as set +by the boot loader. + +Signed-off-by: Juergen Gross <jgross@suse.com> +Cc: Andy Lutomirski <luto@kernel.org> +Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com> +Cc: Baoquan He <bhe@redhat.com> +Cc: Borislav Petkov <bp@alien8.de> +Cc: Jia Zhang <qianyue.zj@alibaba-inc.com> +Cc: Len Brown <len.brown@intel.com> +Cc: Linus Torvalds <torvalds@linux-foundation.org> +Cc: Pavel Machek <pavel@ucw.cz> +Cc: Pavel Tatashin <pasha.tatashin@oracle.com> +Cc: Peter Zijlstra <peterz@infradead.org> +Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com> +Cc: Thomas Gleixner <tglx@linutronix.de> +Cc: boris.ostrovsky@oracle.com +Cc: linux-kernel@vger.kernel.org +Cc: linux-pm@vger.kernel.org +Cc: xen-devel@lists.xenproject.org +Link: http://lkml.kernel.org/r/20181010061456.22238-4-jgross@suse.com +Signed-off-by: Ingo Molnar <mingo@kernel.org> +--- + arch/x86/include/asm/acpi.h | 7 +++++++ + arch/x86/kernel/acpi/boot.c | 6 ++++++ + arch/x86/kernel/x86_init.c | 3 +-- + 3 files changed, 14 insertions(+), 2 deletions(-) + +Index: linux/arch/x86/include/asm/acpi.h +=================================================================== +--- linux.orig/arch/x86/include/asm/acpi.h ++++ linux/arch/x86/include/asm/acpi.h +@@ -142,6 +142,8 @@ static inline u64 acpi_arch_get_root_poi + + void acpi_generic_reduced_hw_init(void); + ++u64 x86_default_get_root_pointer(void); ++ + #else /* !CONFIG_ACPI */ + + #define acpi_lapic 0 +@@ -153,6 +155,11 @@ static inline void disable_acpi(void) { + + static inline void acpi_generic_reduced_hw_init(void) { } + ++static inline u64 x86_default_get_root_pointer(void) ++{ ++ return 0; ++} ++ + #endif /* !CONFIG_ACPI */ + + #define ARCH_HAS_POWER_INIT 1 +Index: linux/arch/x86/kernel/acpi/boot.c +=================================================================== +--- linux.orig/arch/x86/kernel/acpi/boot.c ++++ linux/arch/x86/kernel/acpi/boot.c +@@ -48,6 +48,7 @@ + #include <asm/mpspec.h> + #include <asm/smp.h> + #include <asm/i8259.h> ++#include <asm/setup.h> + + #include "sleep.h" /* To include x86_acpi_suspend_lowlevel */ + static int __initdata acpi_force = 0; +@@ -1771,3 +1772,8 @@ void __init arch_reserve_mem_area(acpi_p + e820__range_add(addr, size, E820_TYPE_ACPI); + e820__update_table_print(); + } ++ ++u64 x86_default_get_root_pointer(void) ++{ ++ return boot_params.hdr.acpi_rsdp_addr; ++} +Index: linux/arch/x86/kernel/x86_init.c +=================================================================== +--- linux.orig/arch/x86/kernel/x86_init.c ++++ linux/arch/x86/kernel/x86_init.c +@@ -31,7 +31,6 @@ static int __init iommu_init_noop(void) + static void iommu_shutdown_noop(void) { } + static bool __init bool_x86_init_noop(void) { return false; } + static void x86_op_int_noop(int cpu) { } +-static u64 u64_x86_init_noop(void) { return 0; } + + /* + * The platform setup functions are preset with the default functions +@@ -96,7 +95,7 @@ struct x86_init_ops x86_init __initdata + }, + + .acpi = { +- .get_root_pointer = u64_x86_init_noop, ++ .get_root_pointer = x86_default_get_root_pointer, + .reduced_hw_early_init = acpi_generic_reduced_hw_init, + }, + }; |