diff -Nur --exclude-from=/usr/src/.dontdiff linux-2.5.59-vanilla/include/linux/gfp.h linux-2.5.59-zonelist_fix/include/linux/gfp.h --- linux-2.5.59-vanilla/include/linux/gfp.h Thu Jan 16 18:21:47 2003 +++ linux-2.5.59-zonelist_fix/include/linux/gfp.h Thu Jan 30 11:49:04 2003 @@ -7,7 +7,7 @@ /* * GFP bitmasks.. */ -/* Zone modifiers in GFP_ZONEMASK (see linux/mmzone.h - low four bits) */ +/* Zone modifiers in GFP_ZONEMASK (see linux/mmzone.h - low two bits) */ #define __GFP_DMA 0x01 #define __GFP_HIGHMEM 0x02 diff -Nur --exclude-from=/usr/src/.dontdiff linux-2.5.59-vanilla/include/linux/mmzone.h linux-2.5.59-zonelist_fix/include/linux/mmzone.h --- linux-2.5.59-vanilla/include/linux/mmzone.h Thu Jan 16 18:21:34 2003 +++ linux-2.5.59-zonelist_fix/include/linux/mmzone.h Thu Jan 30 12:20:24 2003 @@ -162,7 +162,7 @@ struct zone *zones[MAX_NUMNODES * MAX_NR_ZONES + 1]; // NULL delimited }; -#define GFP_ZONEMASK 0x0f +#define GFP_ZONEMASK 0x03 /* * The pg_data_t structure is used in machines with CONFIG_DISCONTIGMEM @@ -178,7 +178,7 @@ struct bootmem_data; typedef struct pglist_data { struct zone node_zones[MAX_NR_ZONES]; - struct zonelist node_zonelists[GFP_ZONEMASK+1]; + struct zonelist node_zonelists[MAX_NR_ZONES]; int nr_zones; struct page *node_mem_map; unsigned long *valid_addr_bitmap; diff -Nur --exclude-from=/usr/src/.dontdiff linux-2.5.59-vanilla/mm/page_alloc.c linux-2.5.59-zonelist_fix/mm/page_alloc.c --- linux-2.5.59-vanilla/mm/page_alloc.c Thu Jan 16 18:21:38 2003 +++ linux-2.5.59-zonelist_fix/mm/page_alloc.c Thu Jan 30 11:47:11 2003 @@ -962,7 +962,7 @@ local_node = pgdat->node_id; printk("Building zonelist for node : %d\n", local_node); - for (i = 0; i <= GFP_ZONEMASK; i++) { + for (i = 0; i < MAX_NR_ZONES; i++) { struct zonelist *zonelist; zonelist = pgdat->node_zonelists + i;