if (qc && (!(qc->tf.ctl & ATA_NIEN))) 
if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) 
static irqreturn_t pdc20621_interrupt (int irq, void *dev_instance, struct pt_regs *regs){	struct ata_host_set *host_set = dev_instance;	struct ata_port *ap;	u32 mask = 0;	unsigned int i, tmp, port_no;	unsigned int handled = 0;	void __iomem *mmio_base;	VPRINTK("ENTER\n");	if (!host_set || !host_set->mmio_base) {		VPRINTK("QUICK EXIT\n");		return IRQ_NONE;	}	mmio_base = host_set->mmio_base;	/* reading should also clear interrupts */	mmio_base += PDC_CHIP0_OFS;	mask = readl(mmio_base + PDC_20621_SEQMASK);	VPRINTK("mask == 0x%x\n", mask);	if (mask == 0xffffffff) {		VPRINTK("QUICK EXIT 2\n");		return IRQ_NONE;	}	mask &= 0xffff;		/* only 16 tags possible */	if (!mask) {		VPRINTK("QUICK EXIT 3\n");		return IRQ_NONE;	}        spin_lock(&host_set->lock);        for (i = 1; i < 9; i++) {		port_no = i - 1;		if (port_no > 3)			port_no -= 4;		if (port_no >= host_set->n_ports)			ap = NULL;		else			ap = host_set->ports[port_no];		tmp = mask & (1 << i);		VPRINTK("seq %u, port_no %u, ap %p, tmp %x\n", i, port_no, ap, tmp);		if (tmp && ap &&		    !(ap->flags & (ATA_FLAG_PORT_DISABLED | ATA_FLAG_NOINTR))) {			struct ata_queued_cmd *qc;			qc = ata_qc_from_tag(ap, ap->active_tag);			if (qc && (!(qc->tf.ctl & ATA_NIEN)))				handled += pdc20621_host_intr(ap, qc, (i > 4),							      mmio_base);		}	}        spin_unlock(&host_set->lock);	VPRINTK("mask == 0x%x\n", mask);	VPRINTK("EXIT\n");	return IRQ_RETVAL(handled);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/e50362eccd8809a224cda5f71714a088ba37b2ab/sata_sx4.c/buggy/drivers/scsi/sata_sx4.c