aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/alpha/mm/numa.c16
-rw-r--r--arch/i386/mm/pgtable.c2
-rw-r--r--arch/ia64/mm/discontig.c9
-rw-r--r--arch/m32r/mm/init.c4
-rw-r--r--arch/mips/sgi-ip27/ip27-memory.c5
-rw-r--r--arch/parisc/mm/init.c2
-rw-r--r--arch/ppc64/mm/init.c4
-rw-r--r--include/asm-alpha/mmzone.h3
-rw-r--r--include/asm-i386/mmzone.h3
-rw-r--r--include/asm-m32r/mmzone.h3
-rw-r--r--include/asm-parisc/mmzone.h3
-rw-r--r--include/asm-ppc64/mmzone.h3
-rw-r--r--include/asm-x86_64/mmzone.h5
-rw-r--r--include/linux/mmzone.h2
14 files changed, 28 insertions, 36 deletions
diff --git a/arch/alpha/mm/numa.c b/arch/alpha/mm/numa.c
index ba81c4422aaf..c7481d59b6df 100644
--- a/arch/alpha/mm/numa.c
+++ b/arch/alpha/mm/numa.c
@@ -327,8 +327,6 @@ void __init mem_init(void)
327 extern char _text, _etext, _data, _edata; 327 extern char _text, _etext, _data, _edata;
328 extern char __init_begin, __init_end; 328 extern char __init_begin, __init_end;
329 unsigned long nid, i; 329 unsigned long nid, i;
330 struct page * lmem_map;
331
332 high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT); 330 high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT);
333 331
334 reservedpages = 0; 332 reservedpages = 0;
@@ -338,10 +336,10 @@ void __init mem_init(void)
338 */ 336 */
339 totalram_pages += free_all_bootmem_node(NODE_DATA(nid)); 337 totalram_pages += free_all_bootmem_node(NODE_DATA(nid));
340 338
341 lmem_map = node_mem_map(nid);
342 pfn = NODE_DATA(nid)->node_start_pfn; 339 pfn = NODE_DATA(nid)->node_start_pfn;
343 for (i = 0; i < node_spanned_pages(nid); i++, pfn++) 340 for (i = 0; i < node_spanned_pages(nid); i++, pfn++)
344 if (page_is_ram(pfn) && PageReserved(lmem_map+i)) 341 if (page_is_ram(pfn) &&
342 PageReserved(nid_page_nr(nid, i)))
345 reservedpages++; 343 reservedpages++;
346 } 344 }
347 345
@@ -373,18 +371,18 @@ show_mem(void)
373 show_free_areas(); 371 show_free_areas();
374 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); 372 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
375 for_each_online_node(nid) { 373 for_each_online_node(nid) {
376 struct page * lmem_map = node_mem_map(nid);
377 i = node_spanned_pages(nid); 374 i = node_spanned_pages(nid);
378 while (i-- > 0) { 375 while (i-- > 0) {
376 struct page *page = nid_page_nr(nid, i);
379 total++; 377 total++;
380 if (PageReserved(lmem_map+i)) 378 if (PageReserved(page))
381 reserved++; 379 reserved++;
382 else if (PageSwapCache(lmem_map+i)) 380 else if (PageSwapCache(page))
383 cached++; 381 cached++;
384 else if (!page_count(lmem_map+i)) 382 else if (!page_count(page))
385 free++; 383 free++;
386 else 384 else
387 shared += page_count(lmem_map + i) - 1; 385 shared += page_count(page) - 1;
388 } 386 }
389 } 387 }
390 printk("%ld pages of RAM\n",total); 388 printk("%ld pages of RAM\n",total);
diff --git a/arch/i386/mm/pgtable.c b/arch/i386/mm/pgtable.c
index dd81479ff88a..80c84cdf22ef 100644
--- a/arch/i386/mm/pgtable.c
+++ b/arch/i386/mm/pgtable.c
@@ -36,7 +36,7 @@ void show_mem(void)
36 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); 36 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
37 for_each_pgdat(pgdat) { 37 for_each_pgdat(pgdat) {
38 for (i = 0; i < pgdat->node_spanned_pages; ++i) { 38 for (i = 0; i < pgdat->node_spanned_pages; ++i) {
39 page = pgdat->node_mem_map + i; 39 page = pgdat_page_nr(pgdat, i);
40 total++; 40 total++;
41 if (PageHighMem(page)) 41 if (PageHighMem(page))
42 highmem++; 42 highmem++;
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c
index c00710929390..f3fd528ead3b 100644
--- a/arch/ia64/mm/discontig.c
+++ b/arch/ia64/mm/discontig.c
@@ -560,14 +560,15 @@ void show_mem(void)
560 int shared = 0, cached = 0, reserved = 0; 560 int shared = 0, cached = 0, reserved = 0;
561 printk("Node ID: %d\n", pgdat->node_id); 561 printk("Node ID: %d\n", pgdat->node_id);
562 for(i = 0; i < pgdat->node_spanned_pages; i++) { 562 for(i = 0; i < pgdat->node_spanned_pages; i++) {
563 struct page *page = pgdat_page_nr(pgdat, i);
563 if (!ia64_pfn_valid(pgdat->node_start_pfn+i)) 564 if (!ia64_pfn_valid(pgdat->node_start_pfn+i))
564 continue; 565 continue;
565 if (PageReserved(pgdat->node_mem_map+i)) 566 if (PageReserved(page))
566 reserved++; 567 reserved++;
567 else if (PageSwapCache(pgdat->node_mem_map+i)) 568 else if (PageSwapCache(page))
568 cached++; 569 cached++;
569 else if (page_count(pgdat->node_mem_map+i)) 570 else if (page_count(page))
570 shared += page_count(pgdat->node_mem_map+i)-1; 571 shared += page_count(page)-1;
571 } 572 }
572 total_present += present; 573 total_present += present;
573 total_reserved += reserved; 574 total_reserved += reserved;
diff --git a/arch/m32r/mm/init.c b/arch/m32r/mm/init.c
index bc423d838fb8..d9a40b1fe8ba 100644
--- a/arch/m32r/mm/init.c
+++ b/arch/m32r/mm/init.c
@@ -49,7 +49,7 @@ void show_mem(void)
49 printk("Free swap: %6ldkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); 49 printk("Free swap: %6ldkB\n",nr_swap_pages<<(PAGE_SHIFT-10));
50 for_each_pgdat(pgdat) { 50 for_each_pgdat(pgdat) {
51 for (i = 0; i < pgdat->node_spanned_pages; ++i) { 51 for (i = 0; i < pgdat->node_spanned_pages; ++i) {
52 page = pgdat->node_mem_map + i; 52 page = pgdat_page_nr(pgdat, i);
53 total++; 53 total++;
54 if (PageHighMem(page)) 54 if (PageHighMem(page))
55 highmem++; 55 highmem++;
@@ -152,7 +152,7 @@ int __init reservedpages_count(void)
152 reservedpages = 0; 152 reservedpages = 0;
153 for_each_online_node(nid) 153 for_each_online_node(nid)
154 for (i = 0 ; i < MAX_LOW_PFN(nid) - START_PFN(nid) ; i++) 154 for (i = 0 ; i < MAX_LOW_PFN(nid) - START_PFN(nid) ; i++)
155 if (PageReserved(NODE_DATA(nid)->node_mem_map + i)) 155 if (PageReserved(nid_page_nr(nid, i)))
156 reservedpages++; 156 reservedpages++;
157 157
158 return reservedpages; 158 return reservedpages;
diff --git a/arch/mips/sgi-ip27/ip27-memory.c b/arch/mips/sgi-ip27/ip27-memory.c
index 0a44a98d7adc..a160d04f7dbe 100644
--- a/arch/mips/sgi-ip27/ip27-memory.c
+++ b/arch/mips/sgi-ip27/ip27-memory.c
@@ -549,9 +549,8 @@ void __init mem_init(void)
549 */ 549 */
550 numslots = node_getlastslot(node); 550 numslots = node_getlastslot(node);
551 for (slot = 1; slot <= numslots; slot++) { 551 for (slot = 1; slot <= numslots; slot++) {
552 p = NODE_DATA(node)->node_mem_map + 552 p = nid_page_nr(node, slot_getbasepfn(node, slot) -
553 (slot_getbasepfn(node, slot) - 553 slot_getbasepfn(node, 0));
554 slot_getbasepfn(node, 0));
555 554
556 /* 555 /*
557 * Free valid memory in current slot. 556 * Free valid memory in current slot.
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
index cac37589e35c..2886ad70db48 100644
--- a/arch/parisc/mm/init.c
+++ b/arch/parisc/mm/init.c
@@ -506,7 +506,7 @@ void show_mem(void)
506 for (j = node_start_pfn(i); j < node_end_pfn(i); j++) { 506 for (j = node_start_pfn(i); j < node_end_pfn(i); j++) {
507 struct page *p; 507 struct page *p;
508 508
509 p = node_mem_map(i) + j - node_start_pfn(i); 509 p = nid_page_nr(i, j) - node_start_pfn(i);
510 510
511 total++; 511 total++;
512 if (PageReserved(p)) 512 if (PageReserved(p))
diff --git a/arch/ppc64/mm/init.c b/arch/ppc64/mm/init.c
index 6fa1e6490b57..29dbe084c21f 100644
--- a/arch/ppc64/mm/init.c
+++ b/arch/ppc64/mm/init.c
@@ -98,7 +98,7 @@ void show_mem(void)
98 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); 98 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
99 for_each_pgdat(pgdat) { 99 for_each_pgdat(pgdat) {
100 for (i = 0; i < pgdat->node_spanned_pages; i++) { 100 for (i = 0; i < pgdat->node_spanned_pages; i++) {
101 page = pgdat->node_mem_map + i; 101 page = pgdat_page_nr(pgdat, i);
102 total++; 102 total++;
103 if (PageReserved(page)) 103 if (PageReserved(page))
104 reserved++; 104 reserved++;
@@ -654,7 +654,7 @@ void __init mem_init(void)
654 654
655 for_each_pgdat(pgdat) { 655 for_each_pgdat(pgdat) {
656 for (i = 0; i < pgdat->node_spanned_pages; i++) { 656 for (i = 0; i < pgdat->node_spanned_pages; i++) {
657 page = pgdat->node_mem_map + i; 657 page = pgdat_page_nr(pgdat, i);
658 if (PageReserved(page)) 658 if (PageReserved(page))
659 reservedpages++; 659 reservedpages++;
660 } 660 }
diff --git a/include/asm-alpha/mmzone.h b/include/asm-alpha/mmzone.h
index 726c150dcbe4..a011ef4cf3d3 100644
--- a/include/asm-alpha/mmzone.h
+++ b/include/asm-alpha/mmzone.h
@@ -57,7 +57,6 @@ PLAT_NODE_DATA_LOCALNR(unsigned long p, int n)
57 * Given a kernel address, find the home node of the underlying memory. 57 * Given a kernel address, find the home node of the underlying memory.
58 */ 58 */
59#define kvaddr_to_nid(kaddr) pa_to_nid(__pa(kaddr)) 59#define kvaddr_to_nid(kaddr) pa_to_nid(__pa(kaddr))
60#define node_mem_map(nid) (NODE_DATA(nid)->node_mem_map)
61#define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn) 60#define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn)
62 61
63#define local_mapnr(kvaddr) \ 62#define local_mapnr(kvaddr) \
@@ -108,7 +107,7 @@ PLAT_NODE_DATA_LOCALNR(unsigned long p, int n)
108#define pfn_to_page(pfn) \ 107#define pfn_to_page(pfn) \
109({ \ 108({ \
110 unsigned long kaddr = (unsigned long)__va((pfn) << PAGE_SHIFT); \ 109 unsigned long kaddr = (unsigned long)__va((pfn) << PAGE_SHIFT); \
111 (node_mem_map(kvaddr_to_nid(kaddr)) + local_mapnr(kaddr)); \ 110 (NODE_DATA(kvaddr_to_nid(kaddr))->node_mem_map + local_mapnr(kaddr)); \
112}) 111})
113 112
114#define page_to_pfn(page) \ 113#define page_to_pfn(page) \
diff --git a/include/asm-i386/mmzone.h b/include/asm-i386/mmzone.h
index 13830ae67cac..9cec191f462c 100644
--- a/include/asm-i386/mmzone.h
+++ b/include/asm-i386/mmzone.h
@@ -79,7 +79,6 @@ static inline int pfn_to_nid(unsigned long pfn)
79 */ 79 */
80#define kvaddr_to_nid(kaddr) pfn_to_nid(__pa(kaddr) >> PAGE_SHIFT) 80#define kvaddr_to_nid(kaddr) pfn_to_nid(__pa(kaddr) >> PAGE_SHIFT)
81 81
82#define node_mem_map(nid) (NODE_DATA(nid)->node_mem_map)
83#define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn) 82#define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn)
84#define node_end_pfn(nid) \ 83#define node_end_pfn(nid) \
85({ \ 84({ \
@@ -100,7 +99,7 @@ static inline int pfn_to_nid(unsigned long pfn)
100({ \ 99({ \
101 unsigned long __pfn = pfn; \ 100 unsigned long __pfn = pfn; \
102 int __node = pfn_to_nid(__pfn); \ 101 int __node = pfn_to_nid(__pfn); \
103 &node_mem_map(__node)[node_localnr(__pfn,__node)]; \ 102 &NODE_DATA(__node)->node_mem_map[node_localnr(__pfn,__node)]; \
104}) 103})
105 104
106#define page_to_pfn(pg) \ 105#define page_to_pfn(pg) \
diff --git a/include/asm-m32r/mmzone.h b/include/asm-m32r/mmzone.h
index ebf0228fec42..d58878ec899e 100644
--- a/include/asm-m32r/mmzone.h
+++ b/include/asm-m32r/mmzone.h
@@ -14,7 +14,6 @@ extern struct pglist_data *node_data[];
14#define NODE_DATA(nid) (node_data[nid]) 14#define NODE_DATA(nid) (node_data[nid])
15 15
16#define node_localnr(pfn, nid) ((pfn) - NODE_DATA(nid)->node_start_pfn) 16#define node_localnr(pfn, nid) ((pfn) - NODE_DATA(nid)->node_start_pfn)
17#define node_mem_map(nid) (NODE_DATA(nid)->node_mem_map)
18#define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn) 17#define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn)
19#define node_end_pfn(nid) \ 18#define node_end_pfn(nid) \
20({ \ 19({ \
@@ -32,7 +31,7 @@ extern struct pglist_data *node_data[];
32({ \ 31({ \
33 unsigned long __pfn = pfn; \ 32 unsigned long __pfn = pfn; \
34 int __node = pfn_to_nid(__pfn); \ 33 int __node = pfn_to_nid(__pfn); \
35 &node_mem_map(__node)[node_localnr(__pfn,__node)]; \ 34 &NODE_DATA(__node)->node_mem_map[node_localnr(__pfn,__node)]; \
36}) 35})
37 36
38#define page_to_pfn(pg) \ 37#define page_to_pfn(pg) \
diff --git a/include/asm-parisc/mmzone.h b/include/asm-parisc/mmzone.h
index 928bf50c4693..595d3dce120a 100644
--- a/include/asm-parisc/mmzone.h
+++ b/include/asm-parisc/mmzone.h
@@ -19,7 +19,6 @@ extern struct node_map_data node_data[];
19 */ 19 */
20#define kvaddr_to_nid(kaddr) pfn_to_nid(__pa(kaddr) >> PAGE_SHIFT) 20#define kvaddr_to_nid(kaddr) pfn_to_nid(__pa(kaddr) >> PAGE_SHIFT)
21 21
22#define node_mem_map(nid) (NODE_DATA(nid)->node_mem_map)
23#define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn) 22#define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn)
24#define node_end_pfn(nid) \ 23#define node_end_pfn(nid) \
25({ \ 24({ \
@@ -38,7 +37,7 @@ extern struct node_map_data node_data[];
38({ \ 37({ \
39 unsigned long __pfn = (pfn); \ 38 unsigned long __pfn = (pfn); \
40 int __node = pfn_to_nid(__pfn); \ 39 int __node = pfn_to_nid(__pfn); \
41 &node_mem_map(__node)[node_localnr(__pfn,__node)]; \ 40 &NODE_DATA(__node)->node_mem_map[node_localnr(__pfn,__node)]; \
42}) 41})
43 42
44#define page_to_pfn(pg) \ 43#define page_to_pfn(pg) \
diff --git a/include/asm-ppc64/mmzone.h b/include/asm-ppc64/mmzone.h
index 0619a41a3c9d..cbfc5ecfe875 100644
--- a/include/asm-ppc64/mmzone.h
+++ b/include/asm-ppc64/mmzone.h
@@ -65,7 +65,6 @@ static inline int pa_to_nid(unsigned long pa)
65 */ 65 */
66#define kvaddr_to_nid(kaddr) pa_to_nid(__pa(kaddr)) 66#define kvaddr_to_nid(kaddr) pa_to_nid(__pa(kaddr))
67 67
68#define node_mem_map(nid) (NODE_DATA(nid)->node_mem_map)
69#define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn) 68#define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn)
70#define node_end_pfn(nid) (NODE_DATA(nid)->node_end_pfn) 69#define node_end_pfn(nid) (NODE_DATA(nid)->node_end_pfn)
71 70
@@ -76,7 +75,7 @@ static inline int pa_to_nid(unsigned long pa)
76#define discontigmem_pfn_to_page(pfn) \ 75#define discontigmem_pfn_to_page(pfn) \
77({ \ 76({ \
78 unsigned long __tmp = pfn; \ 77 unsigned long __tmp = pfn; \
79 (node_mem_map(pfn_to_nid(__tmp)) + \ 78 (NODE_DATA(pfn_to_nid(__tmp))->node_mem_map + \
80 node_localnr(__tmp, pfn_to_nid(__tmp))); \ 79 node_localnr(__tmp, pfn_to_nid(__tmp))); \
81}) 80})
82 81
diff --git a/include/asm-x86_64/mmzone.h b/include/asm-x86_64/mmzone.h
index d95b7c240831..ca4fc3fe0dee 100644
--- a/include/asm-x86_64/mmzone.h
+++ b/include/asm-x86_64/mmzone.h
@@ -35,9 +35,6 @@ static inline __attribute__((pure)) int phys_to_nid(unsigned long addr)
35#define kvaddr_to_nid(kaddr) phys_to_nid(__pa(kaddr)) 35#define kvaddr_to_nid(kaddr) phys_to_nid(__pa(kaddr))
36#define NODE_DATA(nid) (node_data[nid]) 36#define NODE_DATA(nid) (node_data[nid])
37 37
38#define node_mem_map(nid) (NODE_DATA(nid)->node_mem_map)
39
40#define node_mem_map(nid) (NODE_DATA(nid)->node_mem_map)
41#define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn) 38#define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn)
42#define node_end_pfn(nid) (NODE_DATA(nid)->node_start_pfn + \ 39#define node_end_pfn(nid) (NODE_DATA(nid)->node_start_pfn + \
43 NODE_DATA(nid)->node_spanned_pages) 40 NODE_DATA(nid)->node_spanned_pages)
@@ -50,7 +47,7 @@ static inline __attribute__((pure)) int phys_to_nid(unsigned long addr)
50 (2.4 used to). */ 47 (2.4 used to). */
51#define pfn_to_page(pfn) ({ \ 48#define pfn_to_page(pfn) ({ \
52 int nid = phys_to_nid(((unsigned long)(pfn)) << PAGE_SHIFT); \ 49 int nid = phys_to_nid(((unsigned long)(pfn)) << PAGE_SHIFT); \
53 ((pfn) - node_start_pfn(nid)) + node_mem_map(nid); \ 50 ((pfn) - node_start_pfn(nid)) + NODE_DATA(nid)->node_mem_map; \
54}) 51})
55 52
56#define page_to_pfn(page) \ 53#define page_to_pfn(page) \
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 4733d35d8223..b79633d3a97b 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -284,6 +284,8 @@ typedef struct pglist_data {
284 284
285#define node_present_pages(nid) (NODE_DATA(nid)->node_present_pages) 285#define node_present_pages(nid) (NODE_DATA(nid)->node_present_pages)
286#define node_spanned_pages(nid) (NODE_DATA(nid)->node_spanned_pages) 286#define node_spanned_pages(nid) (NODE_DATA(nid)->node_spanned_pages)
287#define pgdat_page_nr(pgdat, pagenr) ((pgdat)->node_mem_map + (pagenr))
288#define nid_page_nr(nid, pagenr) pgdat_page_nr(NODE_DATA(nid),(pagenr))
287 289
288extern struct pglist_data *pgdat_list; 290extern struct pglist_data *pgdat_list;
289 291