iounmap((void *) hhead_base); 
iounmap(hhead_base); 
static int __init smp_psurge_probe(void){	int i, ncpus;	/* We don't do SMP on the PPC601 -- paulus */	if (PVR_VER(mfspr(SPRN_PVR)) == 1)		return 1;	/*	 * The powersurge cpu board can be used in the generation	 * of powermacs that have a socket for an upgradeable cpu card,	 * including the 7500, 8500, 9500, 9600.	 * The device tree doesn't tell you if you have 2 cpus because	 * OF doesn't know anything about the 2nd processor.	 * Instead we look for magic bits in magic registers,	 * in the hammerhead memory controller in the case of the	 * dual-cpu powersurge board.  -- paulus.	 */	if (find_devices("hammerhead") == NULL)		return 1;	hhead_base = ioremap(HAMMERHEAD_BASE, 0x800);	quad_base = ioremap(PSURGE_QUAD_REG_ADDR, 1024);	psurge_sec_intr = hhead_base + HHEAD_SEC_INTR;	psurge_type = psurge_quad_probe();	if (psurge_type != PSURGE_DUAL) {		psurge_quad_init();		/* All released cards using this HW design have 4 CPUs */		ncpus = 4;	} else {		iounmap((void *) quad_base);		if ((in_8(hhead_base + HHEAD_CONFIG) & 0x02) == 0) {			/* not a dual-cpu card */			iounmap((void *) hhead_base);			psurge_type = PSURGE_NONE;			return 1;		}		ncpus = 2;	}	psurge_start = ioremap(PSURGE_START, 4);	psurge_pri_intr = ioremap(PSURGE_PRI_INTR, 4);	/* this is not actually strictly necessary -- paulus. */	for (i = 1; i < ncpus; ++i)		smp_hw_index[i] = i;	if (ppc_md.progress) ppc_md.progress("smp_psurge_probe - done", 0x352);	return ncpus;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/8e293ada7d6aaee43dd56a8077b83577dd108667/pmac_smp.c/buggy/arch/ppc/platforms/pmac_smp.c