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