On Fri, May 15, 2009 at 7:51 AM, xb <xavier.bru@xxxxxxxx> wrote:--
Recent linux kernels suppose that the SRAT table is in rev 2 format (ACPI
3.0), but some BIOSes still provide SRAT table in rev 1.
The rev 2 of the SRAT extension mainly provides an extension of the
"proximity_domain" item from 8 bits to 32 bits, using a "reserved" field of
the structure.
When the "reserved" field is not null, linux finds a wrong proximity domain,
and numa initialization is wrong.
Following patch tests the SRAT revision to allow a correct initialization:
This patch tests the version of SRAT ACPI table to allow supporting SRAT rev
1 and SRAT rev 2.
diff -Nru linux-2.6.29-rc7-orig/arch/x86/kernel/acpi/boot.c
linux-2.6.29-rc7-tmp/arch/x86/kernel/acpi/boot.c
--- linux-2.6.29-rc7-orig/arch/x86/kernel/acpi/boot.c 2009-03-12
14:41:38.000000000 +0100
+++ linux-2.6.29-rc7-tmp/arch/x86/kernel/acpi/boot.c 2009-03-16
14:52:07.000000000 +0100
@@ -260,7 +260,8 @@
}
static int __init
-acpi_parse_lapic(struct acpi_subtable_header * header, const unsigned long
end)
+acpi_parse_lapic(const struct acpi_subtable_header * const header,
+ const unsigned long end, const int rev)
do we need to pass that rev all over around?
looks like we could use one srat_version or pxm_mask variable to get
the same result.
YH
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html