aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/mm/init_32.c
diff options
context:
space:
mode:
authorJiang Liu <liuj97@gmail.com>2013-07-03 18:04:14 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-07-03 19:07:37 -0400
commitdceccbe9209bded817f39c01a8a8bd1e69d6277a (patch)
tree382f83846a1fc12fd739631c1305b15d9b524bc1 /arch/sparc/mm/init_32.c
parentda61efcfedabf16e994d67f983588683f3d59837 (diff)
mm/SPARC: prepare for removing num_physpages and simplify mem_init()
Prepare for removing num_physpages and simplify mem_init(). Signed-off-by: Jiang Liu <jiang.liu@huawei.com> Acked-by: Sam Ravnborg <sam@ravnborg.org> Cc: "David S. Miller" <davem@davemloft.net> Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> Cc: Tang Chen <tangchen@cn.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/sparc/mm/init_32.c')
-rw-r--r--arch/sparc/mm/init_32.c34
1 files changed, 4 insertions, 30 deletions
diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c
index a438abb5495e..db6987082805 100644
--- a/arch/sparc/mm/init_32.c
+++ b/arch/sparc/mm/init_32.c
@@ -288,10 +288,6 @@ static void map_high_region(unsigned long start_pfn, unsigned long end_pfn)
288 288
289void __init mem_init(void) 289void __init mem_init(void)
290{ 290{
291 int codepages = 0;
292 int datapages = 0;
293 int initpages = 0;
294 int reservedpages = 0;
295 int i; 291 int i;
296 292
297 if (PKMAP_BASE+LAST_PKMAP*PAGE_SIZE >= FIXADDR_START) { 293 if (PKMAP_BASE+LAST_PKMAP*PAGE_SIZE >= FIXADDR_START) {
@@ -329,8 +325,6 @@ void __init mem_init(void)
329 unsigned long start_pfn = sp_banks[i].base_addr >> PAGE_SHIFT; 325 unsigned long start_pfn = sp_banks[i].base_addr >> PAGE_SHIFT;
330 unsigned long end_pfn = (sp_banks[i].base_addr + sp_banks[i].num_bytes) >> PAGE_SHIFT; 326 unsigned long end_pfn = (sp_banks[i].base_addr + sp_banks[i].num_bytes) >> PAGE_SHIFT;
331 327
332 num_physpages += sp_banks[i].num_bytes >> PAGE_SHIFT;
333
334 if (end_pfn <= highstart_pfn) 328 if (end_pfn <= highstart_pfn)
335 continue; 329 continue;
336 330
@@ -340,39 +334,19 @@ void __init mem_init(void)
340 map_high_region(start_pfn, end_pfn); 334 map_high_region(start_pfn, end_pfn);
341 } 335 }
342 336
343 codepages = (((unsigned long) &_etext) - ((unsigned long)&_start)); 337 mem_init_print_info(NULL);
344 codepages = PAGE_ALIGN(codepages) >> PAGE_SHIFT;
345 datapages = (((unsigned long) &_edata) - ((unsigned long)&_etext));
346 datapages = PAGE_ALIGN(datapages) >> PAGE_SHIFT;
347 initpages = (((unsigned long) &__init_end) - ((unsigned long) &__init_begin));
348 initpages = PAGE_ALIGN(initpages) >> PAGE_SHIFT;
349
350 /* Ignore memory holes for the purpose of counting reserved pages */
351 for (i=0; i < max_low_pfn; i++)
352 if (test_bit(i >> (20 - PAGE_SHIFT), sparc_valid_addr_bitmap)
353 && PageReserved(pfn_to_page(i)))
354 reservedpages++;
355
356 printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, %dk reserved, %dk data, %dk init, %ldk highmem)\n",
357 nr_free_pages() << (PAGE_SHIFT-10),
358 num_physpages << (PAGE_SHIFT - 10),
359 codepages << (PAGE_SHIFT-10),
360 reservedpages << (PAGE_SHIFT - 10),
361 datapages << (PAGE_SHIFT-10),
362 initpages << (PAGE_SHIFT-10),
363 totalhigh_pages << (PAGE_SHIFT-10));
364} 338}
365 339
366void free_initmem (void) 340void free_initmem (void)
367{ 341{
368 num_physpages += free_initmem_default(POISON_FREE_INITMEM); 342 free_initmem_default(POISON_FREE_INITMEM);
369} 343}
370 344
371#ifdef CONFIG_BLK_DEV_INITRD 345#ifdef CONFIG_BLK_DEV_INITRD
372void free_initrd_mem(unsigned long start, unsigned long end) 346void free_initrd_mem(unsigned long start, unsigned long end)
373{ 347{
374 num_physpages += free_reserved_area((void *)start, (void *)end, 348 free_reserved_area((void *)start, (void *)end, POISON_FREE_INITMEM,
375 POISON_FREE_INITMEM, "initrd"); 349 "initrd");
376} 350}
377#endif 351#endif
378 352