diff options
Diffstat (limited to 'debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-from-boot-params.patch')
-rw-r--r-- | debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-from-boot-params.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-from-boot-params.patch b/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-from-boot-params.patch new file mode 100644 index 000000000..5382acce3 --- /dev/null +++ b/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-from-boot-params.patch @@ -0,0 +1,51 @@ +From: Juergen Gross <jgross@suse.com> +Date: Tue, 20 Nov 2018 08:25:29 +0100 +Subject: x86/acpi, x86/boot: Take RSDP address from boot params if available +Origin: https://git.kernel.org/linus/e6e094e053af75cbc164e950814d3d084fb1e698 + +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. + +Suggested-by: "H. Peter Anvin" <hpa@zytor.com> +Signed-off-by: Juergen Gross <jgross@suse.com> +Cc: Linus Torvalds <torvalds@linux-foundation.org> +Cc: Peter Zijlstra <peterz@infradead.org> +Cc: Thomas Gleixner <tglx@linutronix.de> +Cc: boris.ostrovsky@oracle.com +Cc: bp@alien8.de +Cc: daniel.kiper@oracle.com +Cc: sstabellini@kernel.org +Cc: xen-devel@lists.xenproject.org +Link: http://lkml.kernel.org/r/20181120072529.5489-3-jgross@suse.com +Signed-off-by: Ingo Molnar <mingo@kernel.org> +--- + arch/x86/include/uapi/asm/bootparam.h | 3 ++- + arch/x86/kernel/acpi/boot.c | 2 +- + 2 files changed, 3 insertions(+), 2 deletions(-) + +Index: linux/arch/x86/include/uapi/asm/bootparam.h +=================================================================== +--- linux.orig/arch/x86/include/uapi/asm/bootparam.h ++++ linux/arch/x86/include/uapi/asm/bootparam.h +@@ -155,7 +155,8 @@ struct boot_params { + __u8 _pad2[4]; /* 0x054 */ + __u64 tboot_addr; /* 0x058 */ + struct ist_info ist_info; /* 0x060 */ +- __u8 _pad3[16]; /* 0x070 */ ++ __u64 acpi_rsdp_addr; /* 0x070 */ ++ __u8 _pad3[8]; /* 0x078 */ + __u8 hd0_info[16]; /* obsolete! */ /* 0x080 */ + __u8 hd1_info[16]; /* obsolete! */ /* 0x090 */ + struct sys_desc_table sys_desc_table; /* obsolete! */ /* 0x0a0 */ +Index: linux/arch/x86/kernel/acpi/boot.c +=================================================================== +--- linux.orig/arch/x86/kernel/acpi/boot.c ++++ linux/arch/x86/kernel/acpi/boot.c +@@ -1775,5 +1775,5 @@ void __init arch_reserve_mem_area(acpi_p + + u64 x86_default_get_root_pointer(void) + { +- return 0; ++ return boot_params.acpi_rsdp_addr; + } |