diff options
author | David Rientjes <rientjes@google.com> | 2010-03-25 16:33:04 -0700 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2010-04-04 00:50:01 -0400 |
commit | 0f9b75ef3722814134f307f51c19e0791da40e69 (patch) | |
tree | c3d559132032330519f9ea9c81762becc1def9e6 /drivers/acpi/numa.c | |
parent | 2eaa9cfdf33b8d7fb7aff27792192e0019ae8fc6 (diff) |
ACPI: NUMA: map pxms to low node ids
pxms are mapped to low node ids to maintain generic kernel use of
functions such as pxm_to_node() that are used to determine device
affinity. Otherwise, there is no pxm-to-node and node-to-pxm matching
rule for x86_64 users of NUMA emulation where a single pxm may be bound
to multiple NUMA nodes.
Signed-off-by: David Rientjes <rientjes@google.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/numa.c')
-rw-r--r-- | drivers/acpi/numa.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c index b8725461d88..b0337d31460 100644 --- a/drivers/acpi/numa.c +++ b/drivers/acpi/numa.c @@ -61,8 +61,10 @@ int node_to_pxm(int node) void __acpi_map_pxm_to_node(int pxm, int node) { - pxm_to_node_map[pxm] = node; - node_to_pxm_map[node] = pxm; + if (pxm_to_node_map[pxm] == NUMA_NO_NODE || node < pxm_to_node_map[pxm]) + pxm_to_node_map[pxm] = node; + if (node_to_pxm_map[node] == PXM_INVAL || pxm < node_to_pxm_map[node]) + node_to_pxm_map[node] = pxm; } int acpi_map_pxm_to_node(int pxm) |