p = node_mem_map(i) + j - node_start_pfn(i); 
p = nid_page_nr(i, j) - node_start_pfn(i); 
void show_mem(void){	int i,free = 0,total = 0,reserved = 0;	int shared = 0, cached = 0;	printk(KERN_INFO "Mem-info:\n");	show_free_areas();	printk(KERN_INFO "Free swap:	 %6ldkB\n",				nr_swap_pages<<(PAGE_SHIFT-10));#ifndef CONFIG_DISCONTIGMEM	i = max_mapnr;	while (i-- > 0) {		total++;		if (PageReserved(mem_map+i))			reserved++;		else if (PageSwapCache(mem_map+i))			cached++;		else if (!page_count(&mem_map[i]))			free++;		else			shared += page_count(&mem_map[i]) - 1;	}#else	for (i = 0; i < npmem_ranges; i++) {		int j;		for (j = node_start_pfn(i); j < node_end_pfn(i); j++) {			struct page *p;			p = node_mem_map(i) + j - node_start_pfn(i);			total++;			if (PageReserved(p))				reserved++;			else if (PageSwapCache(p))				cached++;			else if (!page_count(p))				free++;			else				shared += page_count(p) - 1;        	}	}#endif	printk(KERN_INFO "%d pages of RAM\n", total);	printk(KERN_INFO "%d reserved pages\n", reserved);	printk(KERN_INFO "%d pages shared\n", shared);	printk(KERN_INFO "%d pages swap cached\n", cached);#ifdef CONFIG_DISCONTIGMEM	{		struct zonelist *zl;		int i, j, k;		for (i = 0; i < npmem_ranges; i++) {			for (j = 0; j < MAX_NR_ZONES; j++) {				zl = NODE_DATA(i)->node_zonelists + j;				printk("Zone list for zone %d on node %d: ", j, i);				for (k = 0; zl->zones[k] != NULL; k++) 					printk("[%d/%s] ", zl->zones[k]->zone_pgdat->node_id, zl->zones[k]->name);				printk("\n");			}		}	}#endif}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/408fde81c1bff15c875a3618481e93a01dcc79ea/init.c/buggy/arch/parisc/mm/init.c