else if (!(name && !strcmp(name, "mac-io"))) /* ignore other cascaded controllers, such as the k2-sata-root */ break; 
static int __devinit finish_node_interrupts(struct device_node *np,					    unsigned long *mem_start,					    int measure_only){	unsigned int *ints;	int intlen, intrcells, intrcount;	int i, j, n;	unsigned int *irq, virq;	struct device_node *ic;	ints = (unsigned int *) get_property(np, "interrupts", &intlen);	if (ints == NULL)		return 0;	intrcells = prom_n_intr_cells(np);	intlen /= intrcells * sizeof(unsigned int);	np->intrs = prom_alloc(intlen * sizeof(*(np->intrs)), mem_start);	if (!np->intrs)		return -ENOMEM;	if (measure_only)		return 0;	intrcount = 0;	for (i = 0; i < intlen; ++i, ints += intrcells) {		n = map_interrupt(&irq, &ic, np, ints, intrcells);		if (n <= 0)			continue;		/* don't map IRQ numbers under a cascaded 8259 controller */		if (ic && device_is_compatible(ic, "chrp,iic")) {			np->intrs[intrcount].line = irq[0];		} else {			virq = virt_irq_create_mapping(irq[0]);			if (virq == NO_IRQ) {				printk(KERN_CRIT "Could not allocate interrupt"				       " number for %s\n", np->full_name);				continue;			}			np->intrs[intrcount].line = irq_offset_up(virq);		}		/* We offset irq numbers for the u3 MPIC by 128 in PowerMac */		if (systemcfg->platform == PLATFORM_POWERMAC && ic && ic->parent) {			char *name = get_property(ic->parent, "name", NULL);			if (name && !strcmp(name, "u3"))				np->intrs[intrcount].line += 128;		}		np->intrs[intrcount].sense = 1;		if (n > 1)			np->intrs[intrcount].sense = irq[1];		if (n > 2) {			printk("hmmm, got %d intr cells for %s:", n,			       np->full_name);			for (j = 0; j < n; ++j)				printk(" %d", irq[j]);			printk("\n");		}		++intrcount;	}	np->n_intrs = intrcount;	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/dc3ec7503e693e05c01d85b664482d0f694429ab/prom.c/clean/arch/ppc64/kernel/prom.c