return IRQ_RETVAL(ecr); 
return IRQ_HANDLED; 
static irqreturn_t mthca_tavor_interrupt(int irq, void *dev_ptr, struct pt_regs *regs){	struct mthca_dev *dev = dev_ptr;	u32 ecr;	int i;	if (dev->eq_table.clr_mask)		writel(dev->eq_table.clr_mask, dev->eq_table.clr_int);	ecr = readl(dev->eq_regs.tavor.ecr_base + 4);	if (ecr) {		writel(ecr, dev->eq_regs.tavor.ecr_base +		       MTHCA_ECR_CLR_BASE - MTHCA_ECR_BASE + 4);		for (i = 0; i < MTHCA_NUM_EQ; ++i)			if (ecr & dev->eq_table.eq[i].eqn_mask &&			    mthca_eq_int(dev, &dev->eq_table.eq[i])) {				tavor_set_eq_ci(dev, &dev->eq_table.eq[i],						dev->eq_table.eq[i].cons_index);				tavor_eq_req_not(dev, dev->eq_table.eq[i].eqn);			}	}	return IRQ_RETVAL(ecr);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/75eeec2f3fd9e8a16777219ebf1bf8395845faa7/mthca_eq.c/buggy/drivers/infiniband/hw/mthca/mthca_eq.c