patch-2.3.44 linux/mm/numa.c

Next file: linux/mm/page_alloc.c
Previous file: linux/kernel/ksyms.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.43/linux/mm/numa.c linux/mm/numa.c
@@ -16,6 +16,18 @@
 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 @@
 
 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 @@
  * 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 @@
 		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.

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)