forked from Minki/linux
dbe67df4ba
Address more review comments from last round of code review. 1) Enhance free_reserved_area() to support poisoning freed memory with pattern '0'. This could be used to get rid of poison_init_mem() on ARM64. 2) A previous patch has disabled memory poison for initmem on s390 by mistake, so restore to the original behavior. 3) Remove redundant PAGE_ALIGN() when calling free_reserved_area(). Signed-off-by: Jiang Liu <jiang.liu@huawei.com> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: "Michael S. Tsirkin" <mst@redhat.com> Cc: <sworddragon2@aol.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Chris Metcalf <cmetcalf@tilera.com> Cc: David Howells <dhowells@redhat.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jeremy Fitzhardinge <jeremy@goop.org> Cc: Jianguo Wu <wujianguo@huawei.com> Cc: Joonsoo Kim <js1304@gmail.com> Cc: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Cc: Marek Szyprowski <m.szyprowski@samsung.com> Cc: Mel Gorman <mel@csn.ul.ie> Cc: Michel Lespinasse <walken@google.com> Cc: Minchan Kim <minchan@kernel.org> Cc: Rik van Riel <riel@redhat.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: Tang Chen <tangchen@cn.fujitsu.com> Cc: Tejun Heo <tj@kernel.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Wen Congyang <wency@cn.fujitsu.com> Cc: Will Deacon <will.deacon@arm.com> Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> Cc: Yinghai Lu <yinghai@kernel.org> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
70 lines
1.6 KiB
C
70 lines
1.6 KiB
C
/*
|
|
* linux/arch/cris/mm/init.c
|
|
*
|
|
* Copyright (C) 1995 Linus Torvalds
|
|
* Copyright (C) 2000,2001 Axis Communications AB
|
|
*
|
|
* Authors: Bjorn Wesen (bjornw@axis.com)
|
|
*
|
|
*/
|
|
|
|
#include <linux/gfp.h>
|
|
#include <linux/init.h>
|
|
#include <linux/bootmem.h>
|
|
#include <asm/tlb.h>
|
|
#include <asm/sections.h>
|
|
|
|
unsigned long empty_zero_page;
|
|
|
|
void __init
|
|
mem_init(void)
|
|
{
|
|
int codesize, reservedpages, datasize, initsize;
|
|
unsigned long tmp;
|
|
|
|
BUG_ON(!mem_map);
|
|
|
|
/* max/min_low_pfn was set by setup.c
|
|
* now we just copy it to some other necessary places...
|
|
*
|
|
* high_memory was also set in setup.c
|
|
*/
|
|
|
|
max_mapnr = num_physpages = max_low_pfn - min_low_pfn;
|
|
|
|
/* this will put all memory onto the freelists */
|
|
totalram_pages = free_all_bootmem();
|
|
|
|
reservedpages = 0;
|
|
for (tmp = 0; tmp < max_mapnr; tmp++) {
|
|
/*
|
|
* Only count reserved RAM pages
|
|
*/
|
|
if (PageReserved(mem_map + tmp))
|
|
reservedpages++;
|
|
}
|
|
|
|
codesize = (unsigned long) &_etext - (unsigned long) &_stext;
|
|
datasize = (unsigned long) &_edata - (unsigned long) &_etext;
|
|
initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin;
|
|
|
|
printk(KERN_INFO
|
|
"Memory: %luk/%luk available (%dk kernel code, %dk reserved, %dk data, "
|
|
"%dk init)\n" ,
|
|
nr_free_pages() << (PAGE_SHIFT-10),
|
|
max_mapnr << (PAGE_SHIFT-10),
|
|
codesize >> 10,
|
|
reservedpages << (PAGE_SHIFT-10),
|
|
datasize >> 10,
|
|
initsize >> 10
|
|
);
|
|
}
|
|
|
|
/* free the pages occupied by initialization code */
|
|
|
|
void
|
|
free_initmem(void)
|
|
{
|
|
free_initmem_default(-1);
|
|
}
|