if (this_ir) { printk(KERN_ERR "unknown IOC4 %s interrupt 0x%x, sio_ir = 0x%x," " sio_ies = 0x%x, other_ir = 0x%x :" "other_ies = 0x%x\n", (intr_type == IOC4_SIO_INTR_TYPE) ? "sio" : "other", this_ir, readl(&soft->is_ioc4_misc_addr->sio_ir.raw), readl(&soft->is_ioc4_misc_addr->sio_ies.raw), readl(&soft->is_ioc4_misc_addr->other_ir.raw), readl(&soft->is_ioc4_misc_addr->other_ies.raw)); } 
static irqreturn_t ioc4_intr(int irq, void *arg, struct pt_regs *regs){	struct ioc4_soft *soft;	uint32_t this_ir, this_mir;	int xx, num_intrs = 0;	int intr_type;	int handled = 0;	struct ioc4_intr_info *ii;	soft = arg;	for (intr_type = 0; intr_type < IOC4_NUM_INTR_TYPES; intr_type++) {		num_intrs = (int)atomic_read(				&soft->is_intr_type[intr_type].is_num_intrs);		this_mir = this_ir = pending_intrs(soft, intr_type);		/* Farm out the interrupt to the various drivers depending on		 * which interrupt bits are set.		 */		for (xx = 0; xx < num_intrs; xx++) {			ii = &soft->is_intr_type[intr_type].is_intr_info[xx];			if ((this_mir = this_ir & ii->sd_bits)) {				/* Disable owned interrupts, call handler */				handled++;				write_ireg(soft, ii->sd_bits, IOC4_W_IEC,								intr_type);				ii->sd_intr(ii->sd_info, this_mir);				this_ir &= ~this_mir;			}		}		if (this_ir) {			printk(KERN_ERR			       "unknown IOC4 %s interrupt 0x%x, sio_ir = 0x%x,"				" sio_ies = 0x%x, other_ir = 0x%x :"				"other_ies = 0x%x\n",			       (intr_type == IOC4_SIO_INTR_TYPE) ? "sio" :			       "other", this_ir,			       readl(&soft->is_ioc4_misc_addr->sio_ir.raw),			       readl(&soft->is_ioc4_misc_addr->sio_ies.raw),			       readl(&soft->is_ioc4_misc_addr->other_ir.raw),			       readl(&soft->is_ioc4_misc_addr->other_ies.raw));		}	}#ifdef DEBUG_INTERRUPTS	{		struct ioc4_misc_regs __iomem *mem = soft->is_ioc4_misc_addr;		spinlock_t *lp = &soft->is_ir_lock;		unsigned long flag;		spin_lock_irqsave(&soft->is_ir_lock, flag);		printk ("%s : %d : mem 0x%p sio_ir 0x%x sio_ies 0x%x "				"other_ir 0x%x other_ies 0x%x mask 0x%x\n",		     __FUNCTION__, __LINE__,		     (void *)mem, readl(&mem->sio_ir.raw),		     readl(&mem->sio_ies.raw),		     readl(&mem->other_ir.raw),		     readl(&mem->other_ies.raw),		     IOC4_OTHER_IR_ATA_INT | IOC4_OTHER_IR_ATA_MEMERR);		spin_unlock_irqrestore(&soft->is_ir_lock, flag);	}#endif	return handled ? IRQ_HANDLED : IRQ_NONE;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/d38e24e260daf11365efd4ed621235fe9c0ba7ee/ioc4_serial.c/buggy/drivers/serial/ioc4_serial.c