[PATCH v2 2/3] x86/acpi: take rsdp address for boot params if available

From: Juergen Gross
Date: Thu Dec 07 2017 - 07:28:48 EST


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@xxxxxxxx>
---
drivers/acpi/osl.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 3bb46cb24a99..3b25e2ad7d75 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -45,6 +45,10 @@
#include <linux/uaccess.h>
#include <linux/io-64-nonatomic-lo-hi.h>

+#ifdef CONFIG_X86
+#include <asm/setup.h>
+#endif
+
#include "internal.h"

#define _COMPONENT ACPI_OS_SERVICES
@@ -195,6 +199,10 @@ acpi_physical_address __init acpi_os_get_root_pointer(void)
if (acpi_rsdp)
return acpi_rsdp;
#endif
+#ifdef CONFIG_X86
+ if (boot_params.hdr.acpi_rsdp_addr)
+ return boot_params.hdr.acpi_rsdp_addr;
+#endif

if (efi_enabled(EFI_CONFIG_TABLES)) {
if (efi.acpi20 != EFI_INVALID_TABLE_ADDR)
--
2.12.3