aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc
diff options
context:
space:
mode:
authorNick Piggin <npiggin@suse.de>2006-03-22 03:08:40 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-22 10:54:02 -0500
commit7835e98b2e3c66dba79cb0ff8ebb90a2fe030c29 (patch)
tree405a96eade34845dabe2f125b6c5eb095846869d /arch/sparc
parent70dc991d66cac40fdb07346dba2b5d862d732c34 (diff)
[PATCH] remove set_page_count() outside mm/
set_page_count usage outside mm/ is limited to setting the refcount to 1. Remove set_page_count from outside mm/, and replace those users with init_page_count() and set_page_refcounted(). This allows more debug checking, and tighter control on how code is allowed to play around with page->_count. Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/sparc')
-rw-r--r--arch/sparc/kernel/sun4d_smp.c6
-rw-r--r--arch/sparc/kernel/sun4m_smp.c6
-rw-r--r--arch/sparc/mm/init.c6
3 files changed, 9 insertions, 9 deletions
diff --git a/arch/sparc/kernel/sun4d_smp.c b/arch/sparc/kernel/sun4d_smp.c
index 40d426cce824..4219dd2ce3a2 100644
--- a/arch/sparc/kernel/sun4d_smp.c
+++ b/arch/sparc/kernel/sun4d_smp.c
@@ -266,19 +266,19 @@ void __init smp4d_boot_cpus(void)
266 266
267 /* Free unneeded trap tables */ 267 /* Free unneeded trap tables */
268 ClearPageReserved(virt_to_page(trapbase_cpu1)); 268 ClearPageReserved(virt_to_page(trapbase_cpu1));
269 set_page_count(virt_to_page(trapbase_cpu1), 1); 269 init_page_count(virt_to_page(trapbase_cpu1));
270 free_page((unsigned long)trapbase_cpu1); 270 free_page((unsigned long)trapbase_cpu1);
271 totalram_pages++; 271 totalram_pages++;
272 num_physpages++; 272 num_physpages++;
273 273
274 ClearPageReserved(virt_to_page(trapbase_cpu2)); 274 ClearPageReserved(virt_to_page(trapbase_cpu2));
275 set_page_count(virt_to_page(trapbase_cpu2), 1); 275 init_page_count(virt_to_page(trapbase_cpu2));
276 free_page((unsigned long)trapbase_cpu2); 276 free_page((unsigned long)trapbase_cpu2);
277 totalram_pages++; 277 totalram_pages++;
278 num_physpages++; 278 num_physpages++;
279 279
280 ClearPageReserved(virt_to_page(trapbase_cpu3)); 280 ClearPageReserved(virt_to_page(trapbase_cpu3));
281 set_page_count(virt_to_page(trapbase_cpu3), 1); 281 init_page_count(virt_to_page(trapbase_cpu3));
282 free_page((unsigned long)trapbase_cpu3); 282 free_page((unsigned long)trapbase_cpu3);
283 totalram_pages++; 283 totalram_pages++;
284 num_physpages++; 284 num_physpages++;
diff --git a/arch/sparc/kernel/sun4m_smp.c b/arch/sparc/kernel/sun4m_smp.c
index a21f27d10e55..fbbd8a474c4c 100644
--- a/arch/sparc/kernel/sun4m_smp.c
+++ b/arch/sparc/kernel/sun4m_smp.c
@@ -233,21 +233,21 @@ void __init smp4m_boot_cpus(void)
233 /* Free unneeded trap tables */ 233 /* Free unneeded trap tables */
234 if (!cpu_isset(i, cpu_present_map)) { 234 if (!cpu_isset(i, cpu_present_map)) {
235 ClearPageReserved(virt_to_page(trapbase_cpu1)); 235 ClearPageReserved(virt_to_page(trapbase_cpu1));
236 set_page_count(virt_to_page(trapbase_cpu1), 1); 236 init_page_count(virt_to_page(trapbase_cpu1));
237 free_page((unsigned long)trapbase_cpu1); 237 free_page((unsigned long)trapbase_cpu1);
238 totalram_pages++; 238 totalram_pages++;
239 num_physpages++; 239 num_physpages++;
240 } 240 }
241 if (!cpu_isset(2, cpu_present_map)) { 241 if (!cpu_isset(2, cpu_present_map)) {
242 ClearPageReserved(virt_to_page(trapbase_cpu2)); 242 ClearPageReserved(virt_to_page(trapbase_cpu2));
243 set_page_count(virt_to_page(trapbase_cpu2), 1); 243 init_page_count(virt_to_page(trapbase_cpu2));
244 free_page((unsigned long)trapbase_cpu2); 244 free_page((unsigned long)trapbase_cpu2);
245 totalram_pages++; 245 totalram_pages++;
246 num_physpages++; 246 num_physpages++;
247 } 247 }
248 if (!cpu_isset(3, cpu_present_map)) { 248 if (!cpu_isset(3, cpu_present_map)) {
249 ClearPageReserved(virt_to_page(trapbase_cpu3)); 249 ClearPageReserved(virt_to_page(trapbase_cpu3));
250 set_page_count(virt_to_page(trapbase_cpu3), 1); 250 init_page_count(virt_to_page(trapbase_cpu3));
251 free_page((unsigned long)trapbase_cpu3); 251 free_page((unsigned long)trapbase_cpu3);
252 totalram_pages++; 252 totalram_pages++;
253 num_physpages++; 253 num_physpages++;
diff --git a/arch/sparc/mm/init.c b/arch/sparc/mm/init.c
index c03babaa0498..898669732466 100644
--- a/arch/sparc/mm/init.c
+++ b/arch/sparc/mm/init.c
@@ -383,7 +383,7 @@ void map_high_region(unsigned long start_pfn, unsigned long end_pfn)
383 struct page *page = pfn_to_page(tmp); 383 struct page *page = pfn_to_page(tmp);
384 384
385 ClearPageReserved(page); 385 ClearPageReserved(page);
386 set_page_count(page, 1); 386 init_page_count(page);
387 __free_page(page); 387 __free_page(page);
388 totalhigh_pages++; 388 totalhigh_pages++;
389 } 389 }
@@ -480,7 +480,7 @@ void free_initmem (void)
480 p = virt_to_page(addr); 480 p = virt_to_page(addr);
481 481
482 ClearPageReserved(p); 482 ClearPageReserved(p);
483 set_page_count(p, 1); 483 init_page_count(p);
484 __free_page(p); 484 __free_page(p);
485 totalram_pages++; 485 totalram_pages++;
486 num_physpages++; 486 num_physpages++;
@@ -497,7 +497,7 @@ void free_initrd_mem(unsigned long start, unsigned long end)
497 struct page *p = virt_to_page(start); 497 struct page *p = virt_to_page(start);
498 498
499 ClearPageReserved(p); 499 ClearPageReserved(p);
500 set_page_count(p, 1); 500 init_page_count(p);
501 __free_page(p); 501 __free_page(p);
502 num_physpages++; 502 num_physpages++;
503 } 503 }