From: KAMEZAWA Hiroyuki By using for_each_online_pgdat(), pgdat_list is not necessary now. This patch removes it. Signed-off-by: KAMEZAWA Hiroyuki Signed-off-by: Andrew Morton --- include/linux/mmzone.h | 3 --- mm/page_alloc.c | 8 ++++---- 2 files changed, 4 insertions(+), 7 deletions(-) diff -puN include/linux/mmzone.h~for_each_online_pgdat-take2-remove-pgdat_list include/linux/mmzone.h --- devel/include/linux/mmzone.h~for_each_online_pgdat-take2-remove-pgdat_list 2006-03-11 02:50:42.000000000 -0800 +++ devel-akpm/include/linux/mmzone.h 2006-03-11 02:50:42.000000000 -0800 @@ -307,7 +307,6 @@ typedef struct pglist_data { unsigned long node_spanned_pages; /* total size of physical page range, including holes */ int node_id; - struct pglist_data *pgdat_next; wait_queue_head_t kswapd_wait; struct task_struct *kswapd; int kswapd_max_order; @@ -324,8 +323,6 @@ typedef struct pglist_data { #include -extern struct pglist_data *pgdat_list; - void __get_zone_counts(unsigned long *active, unsigned long *inactive, unsigned long *free, struct pglist_data *pgdat); void get_zone_counts(unsigned long *active, unsigned long *inactive, diff -puN mm/page_alloc.c~for_each_online_pgdat-take2-remove-pgdat_list mm/page_alloc.c --- devel/mm/page_alloc.c~for_each_online_pgdat-take2-remove-pgdat_list 2006-03-11 02:50:42.000000000 -0800 +++ devel-akpm/mm/page_alloc.c 2006-03-11 02:50:42.000000000 -0800 @@ -49,7 +49,6 @@ nodemask_t node_online_map __read_mostly EXPORT_SYMBOL(node_online_map); nodemask_t node_possible_map __read_mostly = NODE_MASK_ALL; EXPORT_SYMBOL(node_possible_map); -struct pglist_data *pgdat_list __read_mostly; unsigned long totalram_pages __read_mostly; unsigned long totalhigh_pages __read_mostly; long nr_swap_pages; @@ -2170,8 +2169,9 @@ static void *frag_start(struct seq_file { pg_data_t *pgdat; loff_t node = *pos; - - for (pgdat = pgdat_list; pgdat && node; pgdat = pgdat->pgdat_next) + for (pgdat = first_online_pgdat(); + pgdat && node; + pgdat = next_online_pgdat(pgdat)) --node; return pgdat; @@ -2182,7 +2182,7 @@ static void *frag_next(struct seq_file * pg_data_t *pgdat = (pg_data_t *)arg; (*pos)++; - return pgdat->pgdat_next; + return next_online_pgdat(pgdat); } static void frag_stop(struct seq_file *m, void *arg) _