[PATCH 2/2] x86/acpi, x86/boot: Take RSDP address from boot params if available

2018-11-19 Thread Juergen Gross
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 
---
 arch/x86/include/uapi/asm/bootparam.h | 3 ++-
 arch/x86/kernel/acpi/boot.c   | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/x86/include/uapi/asm/bootparam.h 
b/arch/x86/include/uapi/asm/bootparam.h
index a06cbf019744..60733f137e9a 100644
--- a/arch/x86/include/uapi/asm/bootparam.h
+++ b/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 */
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index fb3b1f3a5aba..06635fbca81c 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -1776,5 +1776,5 @@ void __init arch_reserve_mem_area(acpi_physical_address 
addr, size_t size)
 
 u64 x86_default_get_root_pointer(void)
 {
-   return 0;
+   return boot_params.acpi_rsdp_addr;
 }
-- 
2.16.4



[PATCH 2/2] x86/acpi, x86/boot: Take RSDP address from boot params if available

2018-11-19 Thread Juergen Gross
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 
---
 arch/x86/include/uapi/asm/bootparam.h | 3 ++-
 arch/x86/kernel/acpi/boot.c   | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/x86/include/uapi/asm/bootparam.h 
b/arch/x86/include/uapi/asm/bootparam.h
index a06cbf019744..60733f137e9a 100644
--- a/arch/x86/include/uapi/asm/bootparam.h
+++ b/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 */
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index fb3b1f3a5aba..06635fbca81c 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -1776,5 +1776,5 @@ void __init arch_reserve_mem_area(acpi_physical_address 
addr, size_t size)
 
 u64 x86_default_get_root_pointer(void)
 {
-   return 0;
+   return boot_params.acpi_rsdp_addr;
 }
-- 
2.16.4