} else { u32 irq_stat, cmd_err, sstatus, serror;  irq_stat = readl(port + PORT_IRQ_STAT); cmd_err = readl(port + PORT_CMD_ERR); sstatus = readl(port + PORT_SSTATUS); serror = readl(port + PORT_SERROR);  /* Clear IRQ/errors */ writel(irq_stat, port + PORT_IRQ_STAT); if (cmd_err) writel(cmd_err, port + PORT_CMD_ERR); if (serror) writel(serror, port + PORT_SERROR);  printk(KERN_ERR DRV_NAME " ata%u: error interrupt on port%d\n" "  stat=0x%x irq=0x%x cmd_err=%d sstatus=0x%x serror=0x%x\n", ap->id, ap->port_no, slot_stat, irq_stat, cmd_err, sstatus, serror);  if (qc) ata_qc_complete(qc, ATA_ERR);  sil24_reset_controller(ap); } 
} else sil24_error_intr(ap, slot_stat); 
static inline void sil24_host_intr(struct ata_port *ap){	struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->active_tag);	struct sil24_port_priv *pp = ap->private_data;	void *port = pp->port;	u32 slot_stat;	slot_stat = readl(port + PORT_SLOT_STAT);	if (!(slot_stat & HOST_SSTAT_ATTN)) {		if (qc)			ata_qc_complete(qc, 0);	} else {		u32 irq_stat, cmd_err, sstatus, serror;		irq_stat = readl(port + PORT_IRQ_STAT);		cmd_err = readl(port + PORT_CMD_ERR);		sstatus = readl(port + PORT_SSTATUS);		serror = readl(port + PORT_SERROR);		/* Clear IRQ/errors */		writel(irq_stat, port + PORT_IRQ_STAT);		if (cmd_err)			writel(cmd_err, port + PORT_CMD_ERR);		if (serror)			writel(serror, port + PORT_SERROR);		printk(KERN_ERR DRV_NAME " ata%u: error interrupt on port%d\n"		       "  stat=0x%x irq=0x%x cmd_err=%d sstatus=0x%x serror=0x%x\n",		       ap->id, ap->port_no, slot_stat, irq_stat, cmd_err, sstatus, serror);		if (qc)			ata_qc_complete(qc, ATA_ERR);		sil24_reset_controller(ap);	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/8746618d4f18fab25916686b0d8a6be2c2912de1/sata_sil24.c/clean/drivers/scsi/sata_sil24.c