diff --git a/drivers/scsi/ahci.c b/drivers/scsi/ahci.c index 45fd71d..506f0df 100644 --- a/drivers/scsi/ahci.c +++ b/drivers/scsi/ahci.c @@ -916,10 +916,19 @@ static void ahci_host_intr(struct ata_po return; } - if (ata_ratelimit()) + if (ata_ratelimit()) { ata_port_printk(ap, KERN_INFO, "spurious interrupt " "(irq_stat 0x%x active_tag %d sactive 0x%x)\n", status, ap->active_tag, ap->sactive); + if (status & PORT_IRQ_SDB_FIS) { + struct ahci_port_priv *pp = ap->private_data; + u32 *sdb_fis = pp->rx_fis + 0x58; + + ata_port_printk(ap, KERN_INFO, "spurious SDB FIS " + "%08x:%08x ap->qc_active=%08x qc_active=%08x\n", + sdb_fis[0], sdb_fis[1], ap->qc_active, qc_active); + } + } } static void ahci_irq_clear(struct ata_port *ap)