memory_present(nodeid, start_pfn, end_pfn); 
void __init setup_node_bootmem(int nodeid, unsigned long start, unsigned long end){ 	unsigned long start_pfn, end_pfn, bootmap_pages, bootmap_size, bootmap_start; 	unsigned long nodedata_phys;	const int pgdat_size = round_up(sizeof(pg_data_t), PAGE_SIZE);	start = round_up(start, ZONE_ALIGN); 	printk("Bootmem setup node %d %016lx-%016lx\n", nodeid, start, end);	start_pfn = start >> PAGE_SHIFT;	end_pfn = end >> PAGE_SHIFT;	memory_present(nodeid, start_pfn, end_pfn);	nodedata_phys = find_e820_area(start, end, pgdat_size); 	if (nodedata_phys == -1L) 		panic("Cannot find memory pgdat in node %d\n", nodeid);	Dprintk("nodedata_phys %lx\n", nodedata_phys); 	node_data[nodeid] = phys_to_virt(nodedata_phys);	memset(NODE_DATA(nodeid), 0, sizeof(pg_data_t));	NODE_DATA(nodeid)->bdata = &plat_node_bdata[nodeid];	NODE_DATA(nodeid)->node_start_pfn = start_pfn;	NODE_DATA(nodeid)->node_spanned_pages = end_pfn - start_pfn;	/* Find a place for the bootmem map */	bootmap_pages = bootmem_bootmap_pages(end_pfn - start_pfn); 	bootmap_start = round_up(nodedata_phys + pgdat_size, PAGE_SIZE);	bootmap_start = find_e820_area(bootmap_start, end, bootmap_pages<<PAGE_SHIFT);	if (bootmap_start == -1L) 		panic("Not enough continuous space for bootmap on node %d", nodeid); 	Dprintk("bootmap start %lu pages %lu\n", bootmap_start, bootmap_pages); 		bootmap_size = init_bootmem_node(NODE_DATA(nodeid),					 bootmap_start >> PAGE_SHIFT, 					 start_pfn, end_pfn); 	e820_bootmem_free(NODE_DATA(nodeid), start, end);	reserve_bootmem_node(NODE_DATA(nodeid), nodedata_phys, pgdat_size); 	reserve_bootmem_node(NODE_DATA(nodeid), bootmap_start, bootmap_pages<<PAGE_SHIFT);	node_set_online(nodeid);} 
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/d3ee871e63d0a0c70413dc0aa5534b8d6cd6ec37/numa.c/buggy/arch/x86_64/mm/numa.c