X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fm32r%2Fmm%2Finit.c;h=bbd97c85bc5d8c1222477bb8b9a0786b26d14268;hb=refs%2Fheads%2Fvserver;hp=a290e3793caf1e6c88729f5903cc59535c95a231;hpb=a2c21200f1c81b08cb55e417b68150bba439b646;p=linux-2.6.git diff --git a/arch/m32r/mm/init.c b/arch/m32r/mm/init.c index a290e3793..bbd97c85b 100644 --- a/arch/m32r/mm/init.c +++ b/arch/m32r/mm/init.c @@ -9,8 +9,6 @@ * Copyright (C) 1995 Linus Torvalds */ -/* $Id$ */ - #include #include #include @@ -18,9 +16,11 @@ #include #include #include +#include +#include +#include #include #include -#include #include #include #include @@ -48,9 +48,11 @@ void show_mem(void) printk("Mem-info:\n"); show_free_areas(); printk("Free swap: %6ldkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); - for_each_pgdat(pgdat) { + for_each_online_pgdat(pgdat) { + unsigned long flags; + pgdat_resize_lock(pgdat, &flags); for (i = 0; i < pgdat->node_spanned_pages; ++i) { - page = pgdat->node_mem_map + i; + page = pgdat_page_nr(pgdat, i); total++; if (PageHighMem(page)) highmem++; @@ -61,6 +63,7 @@ void show_mem(void) else if (page_count(page)) shared += page_count(page) - 1; } + pgdat_resize_unlock(pgdat, &flags); } printk("%d pages of RAM\n", total); printk("%d pages of HIGHMEM\n",highmem); @@ -97,7 +100,7 @@ void free_initrd_mem(unsigned long, unsigned long); #ifndef CONFIG_DISCONTIGMEM unsigned long __init zone_sizes_init(void) { - unsigned long zones_size[MAX_NR_ZONES] = {0, 0, 0}; + unsigned long zones_size[MAX_NR_ZONES] = {0, }; unsigned long max_dma; unsigned long low; unsigned long start_pfn; @@ -122,8 +125,6 @@ unsigned long __init zone_sizes_init(void) free_area_init_node(0, NODE_DATA(0), zones_size, start_pfn, 0); - mem_map = contig_page_data.node_mem_map; - return 0; } #else /* CONFIG_DISCONTIGMEM */ @@ -153,10 +154,14 @@ int __init reservedpages_count(void) int reservedpages, nid, i; reservedpages = 0; - for (nid = 0 ; nid < numnodes ; nid++) + for_each_online_node(nid) { + unsigned long flags; + pgdat_resize_lock(NODE_DATA(nid), &flags); for (i = 0 ; i < MAX_LOW_PFN(nid) - START_PFN(nid) ; i++) - if (PageReserved(NODE_DATA(nid)->node_mem_map + i)) + if (PageReserved(nid_page_nr(nid, i))) reservedpages++; + pgdat_resize_unlock(NODE_DATA(nid), &flags); + } return reservedpages; } @@ -174,7 +179,7 @@ void __init mem_init(void) #endif num_physpages = 0; - for (nid = 0 ; nid < numnodes ; nid++) + for_each_online_node(nid) num_physpages += MAX_LOW_PFN(nid) - START_PFN(nid) + 1; num_physpages -= hole_pages; @@ -193,7 +198,7 @@ void __init mem_init(void) memset(empty_zero_page, 0, PAGE_SIZE); /* this will put all low memory onto the freelists */ - for (nid = 0 ; nid < numnodes ; nid++) + for_each_online_node(nid) totalram_pages += free_all_bootmem_node(NODE_DATA(nid)); reservedpages = reservedpages_count() - hole_pages; @@ -222,7 +227,7 @@ void free_initmem(void) addr = (unsigned long)(&__init_begin); for (; addr < (unsigned long)(&__init_end); addr += PAGE_SIZE) { ClearPageReserved(virt_to_page(addr)); - set_page_count(virt_to_page(addr), 1); + init_page_count(virt_to_page(addr)); free_page(addr); totalram_pages++; } @@ -240,7 +245,7 @@ void free_initrd_mem(unsigned long start, unsigned long end) unsigned long p; for (p = start; p < end; p += PAGE_SIZE) { ClearPageReserved(virt_to_page(p)); - set_page_count(virt_to_page(p), 1); + init_page_count(virt_to_page(p)); free_page(p); totalram_pages++; }