From a7d01b33a1c331bc176f31c47db11da7baf275d7 Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Fri, 26 Feb 2010 22:37:42 +0100 Subject: [PATCH] --- yaml --- r: 182175 b: refs/heads/master c: d96221ab1e7d86dc0d4666466979117cd1915386 h: refs/heads/master i: 182173: 612c11b6c2bd87daf81fce8a7a23f2d27172ab1f 182171: e42eb30edb13147ba62d3240b187d47c9111bba3 182167: 6dce547ae2763938e7772c0800d6dbcb9170b29a 182159: d282ed9b31386e50f20d2e6df16db33c76d398fb 182143: 445932772394e8bed69f4e733f6ad7bde85e1632 v: v3 --- [refs] | 2 +- trunk/arch/s390/mm/init.c | 33 +++++++++++++++++---------------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/[refs] b/[refs] index f8c40aac6efb..60b0d6078b3c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b8e660b83d505148c83ddc6d5ba69c29d0eab1e3 +refs/heads/master: d96221ab1e7d86dc0d4666466979117cd1915386 diff --git a/trunk/arch/s390/mm/init.c b/trunk/arch/s390/mm/init.c index 765647952221..d5865e4024ce 100644 --- a/trunk/arch/s390/mm/init.c +++ b/trunk/arch/s390/mm/init.c @@ -143,33 +143,34 @@ void kernel_map_pages(struct page *page, int numpages, int enable) } #endif -void free_initmem(void) +void free_init_pages(char *what, unsigned long begin, unsigned long end) { - unsigned long addr; + unsigned long addr = begin; - addr = (unsigned long)(&__init_begin); - for (; addr < (unsigned long)(&__init_end); addr += PAGE_SIZE) { + if (begin >= end) + return; + for (; addr < end; addr += PAGE_SIZE) { ClearPageReserved(virt_to_page(addr)); init_page_count(virt_to_page(addr)); - memset((void *)addr, POISON_FREE_INITMEM, PAGE_SIZE); + memset((void *)(addr & PAGE_MASK), POISON_FREE_INITMEM, + PAGE_SIZE); free_page(addr); totalram_pages++; - } - printk ("Freeing unused kernel memory: %ldk freed\n", - ((unsigned long)&__init_end - (unsigned long)&__init_begin) >> 10); + } + printk(KERN_INFO "Freeing %s: %luk freed\n", what, (end - begin) >> 10); +} + +void free_initmem(void) +{ + free_init_pages("unused kernel memory", + (unsigned long)&__init_begin, + (unsigned long)&__init_end); } #ifdef CONFIG_BLK_DEV_INITRD void free_initrd_mem(unsigned long start, unsigned long end) { - if (start < end) - printk ("Freeing initrd memory: %ldk freed\n", (end - start) >> 10); - for (; start < end; start += PAGE_SIZE) { - ClearPageReserved(virt_to_page(start)); - init_page_count(virt_to_page(start)); - free_page(start); - totalram_pages++; - } + free_init_pages("initrd memory", start, end); } #endif