On 06/03/2014 04:38 AM, Graeme Gregory wrote:
With the addition of ARM64 that does not have a traditional BIOS to scan add a config option which is selected on x86 and ia64 to do the traditional BIOS scanning for tables.
Not sure if it'll help, but I think one could argue here that the spec says though shalt only use the UEFI ptr on UEFI systems (see section 5.2.5.2). That may provide a stronger argument in favor of the patch.
Regardless, this has my ACK, and I think can be sent upstream ASAP as an existing bug.
Acked-by: Al Stone al.stone@linaro.org
Signed-off-by: Graeme Gregory graeme.gregory@linaro.org
arch/ia64/Kconfig | 1 + arch/x86/Kconfig | 1 + drivers/acpi/Kconfig | 3 +++ drivers/acpi/osl.c | 4 +++- 4 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 12c3afe..42a210f6 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -46,6 +46,7 @@ config IA64 select MODULES_USE_ELF_RELA select ARCH_USE_CMPXCHG_LOCKREF select HAVE_ARCH_AUDITSYSCALL
- select ACPI_SCAN_BIOS_NOT_EFI default y help The Itanium Processor Family is Intel's 64-bit successor to
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 25d2c6f..d89c6060 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -130,6 +130,7 @@ config X86 select HAVE_CC_STACKPROTECTOR select GENERIC_CPU_AUTOPROBE select HAVE_ARCH_AUDITSYSCALL
- select ACPI_SCAN_BIOS_NOT_EFI
config INSTRUCTION_DECODER def_bool y diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig index d726e17..1550ea8 100644 --- a/drivers/acpi/Kconfig +++ b/drivers/acpi/Kconfig @@ -40,6 +40,9 @@ menuconfig ACPI http://www.acpi.info http://www.uefi.org/acpi/specs +config ACPI_SCAN_BIOS_NOT_EFI
- bool
if ACPI config ACPI_SLEEP diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index 147bc1b..54f8247 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c @@ -258,12 +258,14 @@ acpi_physical_address __init acpi_os_get_root_pointer(void) "System description tables not found\n"); return 0; }
- } else {
- } else if (IS_ENABLED(CONFIG_ACPI_SCAN_BIOS_NOT_EFI)) { acpi_physical_address pa = 0;
acpi_find_root_pointer(&pa); return pa; }
- return 0;
} /* Must be called with 'acpi_ioremap_lock' or RCU read lock held. */