[parisc-linux-cvs] linux-2.6 tausq

Randolph Chung randolph at tausq.org
Wed Sep 15 19:07:42 MDT 2004


> Modified files:
> 	.              : Makefile 
> 	arch/parisc/mm : init.c 
> 
> Log message:
> 2.6.9-rc2-pa4: fix CONFIG_DISCONTIGMEM support

we now need to initialize the pfn->nid map before initializing the zone.

Index: arch/parisc/mm/init.c
===================================================================
RCS file: /var/cvs/linux-2.6/arch/parisc/mm/init.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- arch/parisc/mm/init.c	13 Sep 2004 15:22:25 -0000	1.12
+++ arch/parisc/mm/init.c	16 Sep 2004 01:06:25 -0000	1.13
@@ -804,19 +804,21 @@ void __init paging_init(void)
 		   ZONE_DMA zone. */
 		zones_size[ZONE_DMA] = pmem_ranges[i].pages;
 
-		free_area_init_node(i, NODE_DATA(i), zones_size,
-				pmem_ranges[i].start_pfn, 0);
-
 #ifdef CONFIG_DISCONTIGMEM
+		/* Need to initialize the pfnnid_map before we can initialize
+		   the zone */
 		{
 		    int j;
-		    for (j = (node_start_pfn(i) >> PFNNID_SHIFT);
-			 j <= (node_end_pfn(i) >> PFNNID_SHIFT);
+		    for (j = (pmem_ranges[i].start_pfn >> PFNNID_SHIFT);
+			 j <= ((pmem_ranges[i].start_pfn + pmem_ranges[i].pages) >> PFNNID_SHIFT);
 			 j++) {
 			pfnnid_map[j] = i;
 		    }
 		}
 #endif
+
+		free_area_init_node(i, NODE_DATA(i), zones_size,
+				pmem_ranges[i].start_pfn, 0);
 	}
 }
 


More information about the parisc-linux-cvs mailing list