summaryrefslogtreecommitdiffstats
path: root/mm/numa.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-02-24 00:12:35 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-02-24 00:12:35 +0000
commit482368b1a8e45430672c58c9a42e7d2004367126 (patch)
treece2a1a567d4d62dee7c2e71a46a99cf72cf1d606 /mm/numa.c
parente4d0251c6f56ab2e191afb70f80f382793e23f74 (diff)
Merge with 2.3.47. Guys, this is buggy as shit. You've been warned.
Diffstat (limited to 'mm/numa.c')
-rw-r--r--mm/numa.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/mm/numa.c b/mm/numa.c
index ad6660b73..df75e65ad 100644
--- a/mm/numa.c
+++ b/mm/numa.c
@@ -16,6 +16,18 @@ int numnodes = 1; /* Initialized for UMA platforms */
static bootmem_data_t contig_bootmem_data;
pg_data_t contig_page_data = { bdata: &contig_bootmem_data };
+/*
+ * This is meant to be invoked by platforms whose physical memory starts
+ * at a considerably higher value than 0. Examples are Super-H, ARM, m68k.
+ * Should be invoked with paramters (0, 0, unsigned long *[], start_paddr).
+ */
+void __init free_area_init_node(int nid, pg_data_t *pgdat,
+ unsigned long *zones_size, unsigned long zone_start_paddr)
+{
+ free_area_init_core(0, NODE_DATA(0), &mem_map, zones_size,
+ zone_start_paddr);
+}
+
#endif /* !CONFIG_DISCONTIGMEM */
struct page * alloc_pages_node(int nid, int gfp_mask, unsigned long order)
@@ -29,10 +41,6 @@ struct page * alloc_pages_node(int nid, int gfp_mask, unsigned long order)
static spinlock_t node_lock = SPIN_LOCK_UNLOCKED;
-extern void show_free_areas_core(int);
-extern void __init free_area_init_core(int nid, pg_data_t *pgdat,
- struct page **gmap, unsigned int *zones_size, unsigned long paddr);
-
void show_free_areas_node(int nid)
{
unsigned long flags;
@@ -47,7 +55,7 @@ void show_free_areas_node(int nid)
* Nodes can be initialized parallely, in no particular order.
*/
void __init free_area_init_node(int nid, pg_data_t *pgdat,
- unsigned int *zones_size, unsigned long zone_start_paddr)
+ unsigned long *zones_size, unsigned long zone_start_paddr)
{
int i, size = 0;
struct page *discard;
@@ -56,6 +64,7 @@ void __init free_area_init_node(int nid, pg_data_t *pgdat,
mem_map = (mem_map_t *)PAGE_OFFSET;
free_area_init_core(nid, pgdat, &discard, zones_size, zone_start_paddr);
+ pgdat->node_id = nid;
/*
* Get space for the valid bitmap.