aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/mm/init_32.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc/mm/init_32.c')
-rw-r--r--arch/sparc/mm/init_32.c37
1 files changed, 3 insertions, 34 deletions
diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c
index 4490c397bb5b..af472cf7c69a 100644
--- a/arch/sparc/mm/init_32.c
+++ b/arch/sparc/mm/init_32.c
@@ -366,45 +366,14 @@ void __init mem_init(void)
366 366
367void free_initmem (void) 367void free_initmem (void)
368{ 368{
369 unsigned long addr; 369 num_physpages += free_initmem_default(POISON_FREE_INITMEM);
370 unsigned long freed;
371
372 addr = (unsigned long)(&__init_begin);
373 freed = (unsigned long)(&__init_end) - addr;
374 for (; addr < (unsigned long)(&__init_end); addr += PAGE_SIZE) {
375 struct page *p;
376
377 memset((void *)addr, POISON_FREE_INITMEM, PAGE_SIZE);
378 p = virt_to_page(addr);
379
380 ClearPageReserved(p);
381 init_page_count(p);
382 __free_page(p);
383 totalram_pages++;
384 num_physpages++;
385 }
386 printk(KERN_INFO "Freeing unused kernel memory: %ldk freed\n",
387 freed >> 10);
388} 370}
389 371
390#ifdef CONFIG_BLK_DEV_INITRD 372#ifdef CONFIG_BLK_DEV_INITRD
391void free_initrd_mem(unsigned long start, unsigned long end) 373void free_initrd_mem(unsigned long start, unsigned long end)
392{ 374{
393 if (start < end) 375 num_physpages += free_reserved_area(start, end, POISON_FREE_INITMEM,
394 printk(KERN_INFO "Freeing initrd memory: %ldk freed\n", 376 "initrd");
395 (end - start) >> 10);
396 for (; start < end; start += PAGE_SIZE) {
397 struct page *p;
398
399 memset((void *)start, POISON_FREE_INITMEM, PAGE_SIZE);
400 p = virt_to_page(start);
401
402 ClearPageReserved(p);
403 init_page_count(p);
404 __free_page(p);
405 totalram_pages++;
406 num_physpages++;
407 }
408} 377}
409#endif 378#endif
410 379