diff options
Diffstat (limited to 'arch/m68k')
-rw-r--r-- | arch/m68k/mm/init.c | 22 | ||||
-rw-r--r-- | arch/m68k/mm/mcfmmu.c | 4 | ||||
-rw-r--r-- | arch/m68k/mm/motorola.c | 14 | ||||
-rw-r--r-- | arch/m68k/mm/sun3mmu.c | 4 |
4 files changed, 8 insertions, 36 deletions
diff --git a/arch/m68k/mm/init.c b/arch/m68k/mm/init.c index b0f201a409f..f0e05bce92f 100644 --- a/arch/m68k/mm/init.c +++ b/arch/m68k/mm/init.c @@ -103,32 +103,26 @@ void __init paging_init(void) free_area_init(zones_size); } +#endif /* CONFIG_MMU */ + void free_initmem(void) { -#ifdef CONFIG_RAMKERNEL +#ifndef CONFIG_MMU_SUN3 unsigned long addr; - /* - * The following code should be cool even if these sections - * are not page aligned. - */ - addr = PAGE_ALIGN((unsigned long) __init_begin); - /* next to check that the page we free is not a partial page */ - for (; addr + PAGE_SIZE < ((unsigned long) __init_end); addr += PAGE_SIZE) { + addr = (unsigned long) __init_begin; + for (; addr < ((unsigned long) __init_end); addr += PAGE_SIZE) { ClearPageReserved(virt_to_page(addr)); init_page_count(virt_to_page(addr)); free_page(addr); totalram_pages++; } pr_notice("Freeing unused kernel memory: %luk freed (0x%x - 0x%x)\n", - (addr - PAGE_ALIGN((unsigned long) __init_begin)) >> 10, - (int)(PAGE_ALIGN((unsigned long) __init_begin)), - (int)(addr - PAGE_SIZE)); -#endif + (addr - (unsigned long) __init_begin) >> 10, + (unsigned int) __init_begin, (unsigned int) __init_end); +#endif /* CONFIG_MMU_SUN3 */ } -#endif /* CONFIG_MMU */ - #if defined(CONFIG_MMU) && !defined(CONFIG_COLDFIRE) #define VECTORS &vectors[0] #else diff --git a/arch/m68k/mm/mcfmmu.c b/arch/m68k/mm/mcfmmu.c index 875b800ef0d..f58fafe7e4c 100644 --- a/arch/m68k/mm/mcfmmu.c +++ b/arch/m68k/mm/mcfmmu.c @@ -29,10 +29,6 @@ atomic_t nr_free_contexts; struct mm_struct *context_mm[LAST_CONTEXT+1]; extern unsigned long num_pages; -void free_initmem(void) -{ -} - /* * ColdFire paging_init derived from sun3. */ diff --git a/arch/m68k/mm/motorola.c b/arch/m68k/mm/motorola.c index 0dafa693515..251c5437787 100644 --- a/arch/m68k/mm/motorola.c +++ b/arch/m68k/mm/motorola.c @@ -304,17 +304,3 @@ void __init paging_init(void) } } -void free_initmem(void) -{ - unsigned long addr; - - addr = (unsigned long)__init_begin; - for (; addr < (unsigned long)__init_end; addr += PAGE_SIZE) { - virt_to_page(addr)->flags &= ~(1 << PG_reserved); - init_page_count(virt_to_page(addr)); - free_page(addr); - totalram_pages++; - } -} - - diff --git a/arch/m68k/mm/sun3mmu.c b/arch/m68k/mm/sun3mmu.c index e0804060501..269f81158a3 100644 --- a/arch/m68k/mm/sun3mmu.c +++ b/arch/m68k/mm/sun3mmu.c @@ -30,10 +30,6 @@ const char bad_pmd_string[] = "Bad pmd in pte_alloc: %08lx\n"; extern unsigned long num_pages; -void free_initmem(void) -{ -} - /* For the sun3 we try to follow the i386 paging_init() more closely */ /* start_mem and end_mem have PAGE_OFFSET added already */ /* now sets up tables using sun3 PTEs rather than i386 as before. --m */ |