2005-10-26 08:04:25

by Magnus Damm

[permalink] [raw]
Subject: [PATCH] i386: srat on non-acpi hw fix

This patch adds a check for the return value of acpi_find_root_pointer().
Without this patch systems without ACPI support such as QEMU crashes when
booting a NUMA kernel with CONFIG_ACPI_SRAT=y.

Signed-off-by: Magnus Damm <[email protected]>
---

diff -urNp linux-2.6.14-rc5-mm1/arch/i386/kernel/srat.c linux-2.6.14-rc5-mm1-i386_srat_non_acpi/arch/i386/kernel/srat.c
--- linux-2.6.14-rc5-mm1/arch/i386/kernel/srat.c 2005-10-24 18:18:12.000000000 +0900
+++ linux-2.6.14-rc5-mm1-i386_srat_non_acpi/arch/i386/kernel/srat.c 2005-10-24 18:24:05.000000000 +0900
@@ -327,7 +327,12 @@ int __init get_memcfg_from_srat(void)
int tables = 0;
int i = 0;

- acpi_find_root_pointer(ACPI_PHYSICAL_ADDRESSING, rsdp_address);
+ if (ACPI_FAILURE(acpi_find_root_pointer(ACPI_PHYSICAL_ADDRESSING,
+ rsdp_address))) {
+ printk("%s: System description tables not found\n",
+ __FUNCTION__);
+ goto out_err;
+ }

if (rsdp_address->pointer_type == ACPI_PHYSICAL_POINTER) {
printk("%s: assigning address to rsdp\n", __FUNCTION__);