diff options
author | Magnus Damm <magnus@valinux.co.jp> | 2005-10-30 17:59:48 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-10-30 20:37:13 -0500 |
commit | 5d35704028d09a183448daceab5dcb94f21a3645 (patch) | |
tree | 2b1b4416c162c458a26d601412d09a7ed9c21b84 | |
parent | 6c180d94abdcfb77a2fe4275bd03687fa159acd7 (diff) |
[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 <magnus@valinux.co.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | arch/i386/kernel/srat.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/i386/kernel/srat.c b/arch/i386/kernel/srat.c index 516bf5653b02..8de658db8146 100644 --- a/arch/i386/kernel/srat.c +++ b/arch/i386/kernel/srat.c | |||
@@ -327,7 +327,12 @@ int __init get_memcfg_from_srat(void) | |||
327 | int tables = 0; | 327 | int tables = 0; |
328 | int i = 0; | 328 | int i = 0; |
329 | 329 | ||
330 | acpi_find_root_pointer(ACPI_PHYSICAL_ADDRESSING, rsdp_address); | 330 | if (ACPI_FAILURE(acpi_find_root_pointer(ACPI_PHYSICAL_ADDRESSING, |
331 | rsdp_address))) { | ||
332 | printk("%s: System description tables not found\n", | ||
333 | __FUNCTION__); | ||
334 | goto out_err; | ||
335 | } | ||
331 | 336 | ||
332 | if (rsdp_address->pointer_type == ACPI_PHYSICAL_POINTER) { | 337 | if (rsdp_address->pointer_type == ACPI_PHYSICAL_POINTER) { |
333 | printk("%s: assigning address to rsdp\n", __FUNCTION__); | 338 | printk("%s: assigning address to rsdp\n", __FUNCTION__); |