x86-64: Fix bad_srat() to clear all state
authorAndi Kleen <andi@firstfloor.org>
Sat, 18 Jul 2009 06:56:57 +0000 (08:56 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 30 Jul 2009 21:40:05 +0000 (14:40 -0700)
commit 429b2b319af3987e808c18f6b81313104caf782c upstream.

Need to clear both nodes and nodes_add state for start/end.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
LKML-Reference: <20090718065657.GA2898@basil.fritz.box>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/mm/srat_64.c

index 01765955baaf66922ad70a959c9875f60fcad56e..c5c43e00107fee71d8cffd9d4237776971f48262 100644 (file)
@@ -89,8 +89,10 @@ static __init void bad_srat(void)
        found_add_area = 0;
        for (i = 0; i < MAX_LOCAL_APIC; i++)
                apicid_to_node[i] = NUMA_NO_NODE;
-       for (i = 0; i < MAX_NUMNODES; i++)
-               nodes_add[i].start = nodes[i].end = 0;
+       for (i = 0; i < MAX_NUMNODES; i++) {
+               nodes[i].start = nodes[i].end = 0;
+               nodes_add[i].start = nodes_add[i].end = 0;
+       }
        remove_all_active_ranges();
 }