xen/21234-x86-bad-srat-clear-pxm2node.patch

35 lines
1.1 KiB
Diff
Raw Normal View History

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