diff -urpN -X /home/fletch/.diff.exclude 504-ppc64-update/include/linux/mmzone.h 510-fix_numameminfo/include/linux/mmzone.h --- 504-ppc64-update/include/linux/mmzone.h Thu Feb 13 11:08:14 2003 +++ 510-fix_numameminfo/include/linux/mmzone.h Sat May 10 19:17:24 2003 @@ -185,6 +185,7 @@ typedef struct pglist_data { struct bootmem_data *bdata; unsigned long node_start_pfn; unsigned long node_size; + unsigned long real_node_size; int node_id; struct pglist_data *pgdat_next; wait_queue_head_t kswapd_wait; diff -urpN -X /home/fletch/.diff.exclude 504-ppc64-update/mm/page_alloc.c 510-fix_numameminfo/mm/page_alloc.c --- 504-ppc64-update/mm/page_alloc.c Sat May 10 18:48:32 2003 +++ 510-fix_numameminfo/mm/page_alloc.c Sat May 10 19:17:24 2003 @@ -900,7 +900,7 @@ void si_meminfo_node(struct sysinfo *val { pg_data_t *pgdat = NODE_DATA(nid); - val->totalram = pgdat->node_size; + val->totalram = pgdat->real_node_size; val->freeram = nr_free_pages_pgdat(pgdat); val->totalhigh = pgdat->node_zones[ZONE_HIGHMEM].spanned_pages; val->freehigh = pgdat->node_zones[ZONE_HIGHMEM].free_pages; @@ -1141,6 +1141,8 @@ static void __init calculate_zone_totalp if (zholes_size) for (i = 0; i < MAX_NR_ZONES; i++) realtotalpages -= zholes_size[i]; + pgdat->real_node_size = realtotalpages; + printk("On node %d totalpages: %lu\n", pgdat->node_id, realtotalpages); }