Commit 2a3917a8 authored by Tejun Heo's avatar Tejun Heo

[PATCH] ahci: add PIOS interim interrupt handling

During multiblock PIO, multiple PIOS interrupts are generated before
qc compltion.  Current code prints unnecessary message for such cases.
This is exposed when new EH slows down attached device into PIO mode.
Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
parent 78cd52d0
......@@ -883,7 +883,18 @@ static void ahci_host_intr(struct ata_port *ap)
}
}
/* spurious interrupt */
/* hmmm... a spurious interupt */
/* ignore interim PIO setup fis interrupts */
if (ata_tag_valid(ap->active_tag)) {
struct ata_queued_cmd *qc =
ata_qc_from_tag(ap, ap->active_tag);
if (qc && qc->tf.protocol == ATA_PROT_PIO &&
(status & PORT_IRQ_PIOS_FIS))
return;
}
if (ata_ratelimit())
ata_port_printk(ap, KERN_INFO, "spurious interrupt "
"(irq_stat 0x%x active_tag %d)\n",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment