35 lines
1.1 KiB
Diff
35 lines
1.1 KiB
Diff
|
References: bnc#595124
|
||
|
|
||
|
# HG changeset patch
|
||
|
# User Keir Fraser <keir.fraser@citrix.com>
|
||
|
# Date 1272280290 -3600
|
||
|
# Node ID d01ea51fc929c57c7d5f427e1aafa0de7a436473
|
||
|
# Parent f766f2142a8515d1dc71783355dc4fc1813d95c4
|
||
|
x86: make pxm_to_node() return sane values when disabling NUMA internally
|
||
|
|
||
|
Otherwise, pass-through code may call memory allocation functions with
|
||
|
invalid node IDs, causing the allocations to fail.
|
||
|
|
||
|
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
||
|
|
||
|
--- a/xen/arch/x86/srat.c
|
||
|
+++ b/xen/arch/x86/srat.c
|
||
|
@@ -25,7 +25,7 @@ static struct acpi_table_slit *__read_mo
|
||
|
static nodemask_t nodes_parsed __initdata;
|
||
|
static nodemask_t nodes_found __initdata;
|
||
|
static struct node nodes[MAX_NUMNODES] __initdata;
|
||
|
-static u8 __read_mostly pxm2node[256] = { [0 ... 255] = 0xff };
|
||
|
+static u8 __read_mostly pxm2node[256] = { [0 ... 255] = NUMA_NO_NODE };
|
||
|
|
||
|
|
||
|
static int num_node_memblks;
|
||
|
@@ -112,6 +112,8 @@ static __init void bad_srat(void)
|
||
|
acpi_numa = -1;
|
||
|
for (i = 0; i < MAX_LOCAL_APIC; i++)
|
||
|
apicid_to_node[i] = NUMA_NO_NODE;
|
||
|
+ for (i = 0; i < ARRAY_SIZE(pxm2node); i++)
|
||
|
+ pxm2node[i] = NUMA_NO_NODE;
|
||
|
}
|
||
|
|
||
|
#ifdef CONFIG_X86_64
|