ACPI and NUMA guys, please help to check if this patch is OK

From: ethan zhao
Date: Tue May 22 2012 - 22:46:07 EST


[PATCH] drivers/acpi/numa.c: Add localities checking code against
proximity domains to slit_valid()

Some buggy BIOS/ACPI will set different number to SLIT localities and
SRAT proximity domains,
That will make NUMA configuration invalid and kernel will output
information like following

NUMA:Warning:invalid distance parameter, from=-1 to=-1 distance=83

This patch adds some checking code to slit_valid() function in order
to check theSLIT localities
count against SRAT proximity domains number and give clear information
about ACPI bug.

Signed-off-by: ethan.zhao <ethan.kernel@xxxxxxxxx>
---
drivers/acpi/numa.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
index e56f3be..55c8a8e 100644
--- a/drivers/acpi/numa.c
+++ b/drivers/acpi/numa.c
@@ -161,6 +161,13 @@ static __init int slit_valid(struct acpi_table_slit *slit)
{
int i, j;
int d = slit->locality_count;
+ int pxd = nodes_weight(nodes_found_map);
+ if (pxd != d) {
+ printk(KERN_INFO "ACPI: BIOS bug! SLIT localities
count %d doesn't equal SRAT proximity domains number %d\n",
+ d , pxd);
+ return 0;
+ }
+
for (i = 0; i < d; i++) {
for (j = 0; j < d; j++) {
u8 val = slit->entry[d*i + j];
--
1.7.1
--
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/