[PATCH] x86_64: sparsemem does not need node_mem_map
authorAndy Whitcroft <apw@shadowen.org>
Sat, 22 Apr 2006 09:35:41 +0000 (02:35 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sat, 22 Apr 2006 16:19:52 +0000 (09:19 -0700)
Seems we are trying to init the node_mem_map when we don't need to, for
example when SPARSEMEM is enabled.  This causes the error below during
compilation.  Use CONFIG_FLAT_NODE_MEM_MAP to gate allocation and init.

  arch/x86_64/mm/numa.c: In function `setup_node_zones':
  arch/x86_64/mm/numa.c:191: error: structure has no member
                                                  named `node_mem_map'

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Acked-by: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/x86_64/mm/numa.c

index cc02573a327170f80cbf5fa64c99c3d25aad9eef..b2fac14baac0fc151838b32ad54f6eaf741b8047 100644 (file)
@@ -188,11 +188,13 @@ void __init setup_node_zones(int nodeid)
           memory. */
        memmapsize = sizeof(struct page) * (end_pfn-start_pfn);
        limit = end_pfn << PAGE_SHIFT;
+#ifdef CONFIG_FLAT_NODE_MEM_MAP
        NODE_DATA(nodeid)->node_mem_map = 
                __alloc_bootmem_core(NODE_DATA(nodeid)->bdata, 
                                memmapsize, SMP_CACHE_BYTES, 
                                round_down(limit - memmapsize, PAGE_SIZE), 
                                limit);
+#endif
 
        size_zones(zones, holes, start_pfn, end_pfn);
        free_area_init_node(nodeid, NODE_DATA(nodeid), zones,