diff options
Diffstat (limited to 'arch/frv/mm/init.c')
| -rw-r--r-- | arch/frv/mm/init.c | 38 | 
1 files changed, 5 insertions, 33 deletions
diff --git a/arch/frv/mm/init.c b/arch/frv/mm/init.c index 92e97b0894a..dee354fa6b6 100644 --- a/arch/frv/mm/init.c +++ b/arch/frv/mm/init.c @@ -122,7 +122,7 @@ void __init mem_init(void)  #endif  	int codek = 0, datak = 0; -	/* this will put all memory onto the freelists */ +	/* this will put all low memory onto the freelists */  	totalram_pages = free_all_bootmem();  #ifdef CONFIG_MMU @@ -131,14 +131,8 @@ void __init mem_init(void)  			datapages++;  #ifdef CONFIG_HIGHMEM -	for (pfn = num_physpages - 1; pfn >= num_mappedpages; pfn--) { -		struct page *page = &mem_map[pfn]; - -		ClearPageReserved(page); -		init_page_count(page); -		__free_page(page); -		totalram_pages++; -	} +	for (pfn = num_physpages - 1; pfn >= num_mappedpages; pfn--) +		free_highmem_page(&mem_map[pfn]);  #endif  	codek = ((unsigned long) &_etext - (unsigned long) &_stext) >> 10; @@ -168,21 +162,7 @@ void __init mem_init(void)  void free_initmem(void)  {  #if defined(CONFIG_RAMKERNEL) && !defined(CONFIG_PROTECT_KERNEL) -	unsigned long start, end, addr; - -	start = PAGE_ALIGN((unsigned long) &__init_begin);	/* round up */ -	end   = ((unsigned long) &__init_end) & PAGE_MASK;	/* round down */ - -	/* next to check that the page we free is not a partial page */ -	for (addr = start; addr < end; addr += PAGE_SIZE) { -		ClearPageReserved(virt_to_page(addr)); -		init_page_count(virt_to_page(addr)); -		free_page(addr); -		totalram_pages++; -	} - -	printk("Freeing unused kernel memory: %ldKiB freed (0x%lx - 0x%lx)\n", -	       (end - start) >> 10, start, end); +	free_initmem_default(0);  #endif  } /* end free_initmem() */ @@ -193,14 +173,6 @@ void free_initmem(void)  #ifdef CONFIG_BLK_DEV_INITRD  void __init free_initrd_mem(unsigned long start, unsigned long end)  { -	int pages = 0; -	for (; start < end; start += PAGE_SIZE) { -		ClearPageReserved(virt_to_page(start)); -		init_page_count(virt_to_page(start)); -		free_page(start); -		totalram_pages++; -		pages++; -	} -	printk("Freeing initrd memory: %dKiB freed\n", (pages * PAGE_SIZE) >> 10); +	free_reserved_area(start, end, 0, "initrd");  } /* end free_initrd_mem() */  #endif  |