[PATCH] bootmem use NODE_DATA

From: Andy Whitcroft
Date: Thu Oct 28 2004 - 07:19:19 EST


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.

-apw

=== 8< ===
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.

Revision: $Rev: 732 $

Signed-off-by: Andy Whitcroft <apw@xxxxxxxxxxxx>

diffstat 050-bootmem-use-NODE_DATA
---
bootmem.c | 10 ++++------
1 files changed, 4 insertions(+), 6 deletions(-)

diff -upN reference/mm/bootmem.c current/mm/bootmem.c
--- reference/mm/bootmem.c
+++ current/mm/bootmem.c
@@ -343,31 +343,29 @@ unsigned long __init free_all_bootmem_no
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)
{
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/