diff options
Diffstat (limited to 'arch/sh/mm/init.c')
-rw-r--r-- | arch/sh/mm/init.c | 43 |
1 files changed, 9 insertions, 34 deletions
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c index 20f9ead650d3..33890fd267cb 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c | |||
@@ -407,30 +407,16 @@ unsigned int mem_init_done = 0; | |||
407 | 407 | ||
408 | void __init mem_init(void) | 408 | void __init mem_init(void) |
409 | { | 409 | { |
410 | int codesize, datasize, initsize; | 410 | pg_data_t *pgdat; |
411 | int nid; | ||
412 | 411 | ||
413 | iommu_init(); | 412 | iommu_init(); |
414 | 413 | ||
415 | num_physpages = 0; | ||
416 | high_memory = NULL; | 414 | high_memory = NULL; |
415 | for_each_online_pgdat(pgdat) | ||
416 | high_memory = max_t(void *, high_memory, | ||
417 | __va(pgdat_end_pfn(pgdat) << PAGE_SHIFT)); | ||
417 | 418 | ||
418 | for_each_online_node(nid) { | 419 | free_all_bootmem(); |
419 | pg_data_t *pgdat = NODE_DATA(nid); | ||
420 | void *node_high_memory; | ||
421 | |||
422 | num_physpages += pgdat->node_present_pages; | ||
423 | |||
424 | if (pgdat->node_spanned_pages) | ||
425 | totalram_pages += free_all_bootmem_node(pgdat); | ||
426 | |||
427 | |||
428 | node_high_memory = (void *)__va((pgdat->node_start_pfn + | ||
429 | pgdat->node_spanned_pages) << | ||
430 | PAGE_SHIFT); | ||
431 | if (node_high_memory > high_memory) | ||
432 | high_memory = node_high_memory; | ||
433 | } | ||
434 | 420 | ||
435 | /* Set this up early, so we can take care of the zero page */ | 421 | /* Set this up early, so we can take care of the zero page */ |
436 | cpu_cache_init(); | 422 | cpu_cache_init(); |
@@ -441,19 +427,8 @@ void __init mem_init(void) | |||
441 | 427 | ||
442 | vsyscall_init(); | 428 | vsyscall_init(); |
443 | 429 | ||
444 | codesize = (unsigned long) &_etext - (unsigned long) &_text; | 430 | mem_init_print_info(NULL); |
445 | datasize = (unsigned long) &_edata - (unsigned long) &_etext; | 431 | pr_info("virtual kernel memory layout:\n" |
446 | initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin; | ||
447 | |||
448 | printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, " | ||
449 | "%dk data, %dk init)\n", | ||
450 | nr_free_pages() << (PAGE_SHIFT-10), | ||
451 | num_physpages << (PAGE_SHIFT-10), | ||
452 | codesize >> 10, | ||
453 | datasize >> 10, | ||
454 | initsize >> 10); | ||
455 | |||
456 | printk(KERN_INFO "virtual kernel memory layout:\n" | ||
457 | " fixmap : 0x%08lx - 0x%08lx (%4ld kB)\n" | 432 | " fixmap : 0x%08lx - 0x%08lx (%4ld kB)\n" |
458 | #ifdef CONFIG_HIGHMEM | 433 | #ifdef CONFIG_HIGHMEM |
459 | " pkmap : 0x%08lx - 0x%08lx (%4ld kB)\n" | 434 | " pkmap : 0x%08lx - 0x%08lx (%4ld kB)\n" |
@@ -499,13 +474,13 @@ void __init mem_init(void) | |||
499 | 474 | ||
500 | void free_initmem(void) | 475 | void free_initmem(void) |
501 | { | 476 | { |
502 | free_initmem_default(0); | 477 | free_initmem_default(-1); |
503 | } | 478 | } |
504 | 479 | ||
505 | #ifdef CONFIG_BLK_DEV_INITRD | 480 | #ifdef CONFIG_BLK_DEV_INITRD |
506 | void free_initrd_mem(unsigned long start, unsigned long end) | 481 | void free_initrd_mem(unsigned long start, unsigned long end) |
507 | { | 482 | { |
508 | free_reserved_area(start, end, 0, "initrd"); | 483 | free_reserved_area((void *)start, (void *)end, -1, "initrd"); |
509 | } | 484 | } |
510 | #endif | 485 | #endif |
511 | 486 | ||