diff options
author | Andy Whitcroft <apw@shadowen.org> | 2004-11-07 03:38:43 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-11-07 03:38:43 -0800 |
commit | 86e060c6e181bdda01dee8477eb2ee5258c5389a (patch) | |
tree | faf98a5b36f1c19bc2c1b5b101e1718657dd9629 /mm | |
parent | fe184bdc853392fd333ac928f818d8556fa89dc8 (diff) | |
download | history-86e060c6e181bdda01dee8477eb2ee5258c5389a.tar.gz |
[PATCH] bootmem use NODE_DATA
Whilst looking at simplifying the implmentation of i386 initialisation code
I noticed the following. This change allows these routines to be used in
both node based and flat memory models which allows more of the init code
to be common in these models.
Convert the default non-node based bootmem routines to use NODE_DATA(0).
This is semantically and functionally identical in any non-node
configuration as NODE_DATA(x) is defined as below.
#define NODE_DATA(nid) (&contig_page_data)
For the node cases (CONFIG_NUMA and CONFIG_DISCONTIG_MEM) we can use these
non-node forms where all boot memory is defined on node 0.
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/bootmem.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/mm/bootmem.c b/mm/bootmem.c index 092d8517649091..5e2dce496fb01e 100644 --- a/mm/bootmem.c +++ b/mm/bootmem.c @@ -343,31 +343,29 @@ unsigned long __init free_all_bootmem_node (pg_data_t *pgdat) return(free_all_bootmem_core(pgdat)); } -#ifndef CONFIG_DISCONTIGMEM unsigned long __init init_bootmem (unsigned long start, unsigned long pages) { max_low_pfn = pages; min_low_pfn = start; - return(init_bootmem_core(&contig_page_data, start, 0, pages)); + return(init_bootmem_core(NODE_DATA(0), start, 0, pages)); } #ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE void __init reserve_bootmem (unsigned long addr, unsigned long size) { - reserve_bootmem_core(contig_page_data.bdata, addr, size); + reserve_bootmem_core(NODE_DATA(0)->bdata, addr, size); } #endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */ void __init free_bootmem (unsigned long addr, unsigned long size) { - free_bootmem_core(contig_page_data.bdata, addr, size); + free_bootmem_core(NODE_DATA(0)->bdata, addr, size); } unsigned long __init free_all_bootmem (void) { - return(free_all_bootmem_core(&contig_page_data)); + return(free_all_bootmem_core(NODE_DATA(0))); } -#endif /* !CONFIG_DISCONTIGMEM */ void * __init __alloc_bootmem (unsigned long size, unsigned long align, unsigned long goal) { |