On Sun, 2004-12-19 at 22:56, Hiroyuki KAMEZAWA wrote: > +#ifndef CONFIG_VIRTUAL_MEM_MAP > +static struct page * __init __alloc_node_mem_map(struct pglist_data *pgdat, > + int size) > +{ > + return alloc_bootmem_node_remap(pgdat,size); > +} > +#else > +extern struct page *vmem_map; > +extern struct page *alloc_vmem_map(struct pglist_data *pgdat); > +static struct page * __init __alloc_node_mem_map(struct pglist_data *pgdat, > + int size) > +{ > + if (pgdat == NODE_DATA(0)) > + return alloc_vmem_map(pgdat); > + return vmem_map + pgdat->node_start_pfn; > +} > +#endif In anything that might be construed a cleanup, its value is always somewhat put into question when it adds more than it removes: arch/ia64/mm/contig.c | 25 ++----------------------- arch/ia64/mm/discontig.c | 10 ---------- arch/ia64/mm/init.c | 20 ++++++++++++++++++++ mm/page_alloc.c | 20 ++++++++++++++++++-- 4 files changed, 40 insertions(+), 35 deletions(-) Your patch certainly has some good ideas in it, but I think I'll take a look and make sure there isn't something simpler we can do. -- Dave