cc013a8890
Commit 9617729941
("Drop free_pages()")
modified nr_free_pages() to return 'unsigned long' instead of 'unsigned
int'. This made the casts to 'unsigned long' in most callers superfluous,
so remove them.
[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Reviewed-by: Christoph Lameter <cl@linux-foundation.org>
Acked-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Kyle McMartin <kyle@mcmartin.ca>
Acked-by: WANG Cong <xiyou.wangcong@gmail.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
Cc: Mikael Starvik <starvik@axis.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: David Howells <dhowells@redhat.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Chris Zankel <zankel@tensilica.com>
Cc: Michal Simek <monstr@monstr.eu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
83 lines
2.1 KiB
C
83 lines
2.1 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/init.h>
|
|
#include <linux/bootmem.h>
|
|
#include <asm/tlb.h>
|
|
|
|
DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
|
|
|
|
unsigned long empty_zero_page;
|
|
|
|
extern char _stext, _edata, _etext; /* From linkerscript */
|
|
extern char __init_begin, __init_end;
|
|
|
|
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)
|
|
{
|
|
unsigned long addr;
|
|
|
|
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++;
|
|
}
|
|
printk (KERN_INFO "Freeing unused kernel memory: %luk freed\n",
|
|
(unsigned long)((&__init_end - &__init_begin) >> 10));
|
|
}
|