diff options
author | Nick Piggin <npiggin@suse.de> | 2006-03-22 03:08:40 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-22 10:54:02 -0500 |
commit | 7835e98b2e3c66dba79cb0ff8ebb90a2fe030c29 (patch) | |
tree | 405a96eade34845dabe2f125b6c5eb095846869d /arch/sparc | |
parent | 70dc991d66cac40fdb07346dba2b5d862d732c34 (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.c | 6 | ||||
-rw-r--r-- | arch/sparc/kernel/sun4m_smp.c | 6 | ||||
-rw-r--r-- | arch/sparc/mm/init.c | 6 |
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 | } |