Buggy RSDP search in ACPI boot-time code

From: Keir Fraser
Date: Thu Jun 17 2004 - 04:20:19 EST



Hi,

I think that the 'high-memory' search range in acpi_find_rsdp() in
arch/i386/kernel/acpi.c (2.4.26) or arch/i386/kernel/acpi/boot.c
(2.6.5) is incorrect.

It is supposed to search 0xE0000-0x100000, but the length field is
incorrectly specified as 0xFFFFF. As in the 'proper' ACPI driver, the
correct length is 0x20000.

The current length means the search grooves on into the kernel itself,
but since the search string "RSD PTR" only appears in the data
section, the search will usually terminate before finding
'itself'. The fact that the search occurs only on 16-byte boundaries
also helps.

Probably best to fix this though. :-) I've already had to for the Xen
VMM (much smaller codebase means that the search string resides within
the too-large search space).

-- Keir Fraser

PS. Please CC me with responses -- I'm not subscribed.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/