if (qc && (!(qc->tf.ctl & ATA_NIEN))) 
if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) 
static irqreturn_t pdc_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;	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 */	mask = readl(mmio_base + PDC_INT_SEQMASK);	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);	writel(mask, mmio_base + PDC_INT_SEQMASK);	for (i = 0; i < host_set->n_ports; i++) {		VPRINTK("port %u\n", i);		ap = host_set->ports[i];		tmp = mask & (1 << (i + 1));		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 += pdc_host_intr(ap, qc);		}	}        spin_unlock(&host_set->lock);	VPRINTK("EXIT\n");	return IRQ_RETVAL(handled);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/e50362eccd8809a224cda5f71714a088ba37b2ab/sata_promise.c/clean/drivers/scsi/sata_promise.c