Skip to content

Commit

Permalink
x86, mm: Unify zone_sizes_init()
Browse files Browse the repository at this point in the history
Now that zone_sizes_init() is identical on 32-bit and 64-bit,
move the code to arch/x86/mm/init.c and use it for both
architectures.

Acked-by: Tejun Heo <tj@kernel.org>
Acked-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Link: http://lkml.kernel.org/r/1320155902-10424-7-git-send-email-penberg@kernel.org
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Pekka Enberg authored and Ingo Molnar committed Nov 11, 2011
1 parent 248b52b commit 1762391
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 38 deletions.
2 changes: 2 additions & 0 deletions arch/x86/include/asm/init.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
extern void __init early_ioremap_page_table_range_init(void);
#endif

extern void __init zone_sizes_init(void);

extern unsigned long __init
kernel_physical_mapping_init(unsigned long start,
unsigned long end,
Expand Down
23 changes: 23 additions & 0 deletions arch/x86/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include <linux/ioport.h>
#include <linux/swap.h>
#include <linux/memblock.h>
#include <linux/bootmem.h> /* for max_low_pfn */

#include <asm/cacheflush.h>
#include <asm/e820.h>
Expand All @@ -15,6 +16,7 @@
#include <asm/tlbflush.h>
#include <asm/tlb.h>
#include <asm/proto.h>
#include <asm/dma.h> /* for MAX_DMA_PFN */

unsigned long __initdata pgt_buf_start;
unsigned long __meminitdata pgt_buf_end;
Expand Down Expand Up @@ -392,3 +394,24 @@ void free_initrd_mem(unsigned long start, unsigned long end)
free_init_pages("initrd memory", start, PAGE_ALIGN(end));
}
#endif

void __init zone_sizes_init(void)
{
unsigned long max_zone_pfns[MAX_NR_ZONES];

memset(max_zone_pfns, 0, sizeof(max_zone_pfns));

#ifdef CONFIG_ZONE_DMA
max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN;
#endif
#ifdef CONFIG_ZONE_DMA32
max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
#endif
max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
#ifdef CONFIG_HIGHMEM
max_zone_pfns[ZONE_HIGHMEM] = max_pfn;
#endif

free_area_init_nodes(max_zone_pfns);
}

19 changes: 0 additions & 19 deletions arch/x86/mm/init_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -674,25 +674,6 @@ void __init initmem_init(void)
}
#endif /* !CONFIG_NEED_MULTIPLE_NODES */

static void __init zone_sizes_init(void)
{
unsigned long max_zone_pfns[MAX_NR_ZONES];

memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
#ifdef CONFIG_ZONE_DMA
max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN;
#endif
#ifdef CONFIG_ZONE_DMA32
max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
#endif
max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
#ifdef CONFIG_HIGHMEM
max_zone_pfns[ZONE_HIGHMEM] = max_pfn;
#endif

free_area_init_nodes(max_zone_pfns);
}

void __init setup_bootmem_allocator(void)
{
printk(KERN_INFO " mapped low ram: 0 - %08lx\n",
Expand Down
19 changes: 0 additions & 19 deletions arch/x86/mm/init_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -612,25 +612,6 @@ void __init initmem_init(void)
}
#endif

static void __init zone_sizes_init(void)
{
unsigned long max_zone_pfns[MAX_NR_ZONES];

memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
#ifdef CONFIG_ZONE_DMA
max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN;
#endif
#ifdef CONFIG_ZONE_DMA32
max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
#endif
max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
#ifdef CONFIG_HIGHMEM
max_zone_pfns[ZONE_HIGHMEM] = max_pfn;
#endif

free_area_init_nodes(max_zone_pfns);
}

void __init paging_init(void)
{
sparse_memory_present_with_active_regions(MAX_NUMNODES);
Expand Down

0 comments on commit 1762391

Please sign in to comment.