[PATCH] Fix NUMA emulation for x86_64

From: Minoru Usui
Date: Fri Jan 25 2008 - 03:45:50 EST


I found a small bug of NUMA emulation code for x86_64. (CONFIG_NUMA_EMU)
If machine is non-NUMA, find_node_by_addr() should return
NUMA_NO_NODE, but current implementation code returns existent maximum
NUMA node number + 1.
This is not existent NUMA node number.

However, this behaviour does not affect NUMA emulation fortunately, because
acpi_fake_nodes() that is caller of find_node_by_addr() gets pxm
(proximity domain) by node_to_pxm() from non-existent NUMA node number
that was returned by find_node_by_addr().
node_to_pxm() returns PXM_INVAL that means illegal or non-existent
NUMA node number.

Signed-off-by: Minoru Usui <usui@xxxxxxxxxxxxxxxxx>
---
diff -ruNp linux-2.6.24-rc8/arch/x86/mm/srat_64.c dst/arch/x86/mm/srat_64.c
--- linux-2.6.24-rc8/arch/x86/mm/srat_64.c 2008-01-16 14:22:15.000000000 +0900
+++ dst/arch/x86/mm/srat_64.c 2008-01-17 19:07:41.000000000 +0900
@@ -457,7 +457,7 @@ static int __init find_node_by_addr(unsi
break;
}
}
- return i;
+ return ret;
}

/*
--
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/