Skip protocol test altogether in spurious interrupt code. If PIOS is received when it shouldn't, ahci will raise protocol violation. Signed-off-by: Unicorn Chang <uchang@xxxxxxxxxx> --- Patch for kernel bug 6826 - GoVault spurious interrupts (http://bugzilla.kernel.org/show_bug.cgi?id=6826) --- linux-2.6.18-rc2/drivers/scsi/ahci.c.orig 2006-07-24 14:40:41.000000000 -0700 +++ linux-2.6.18-rc2/drivers/scsi/ahci.c 2006-07-31 10:49:30.000000000 -0700 @@ -940,14 +940,8 @@ static void ahci_host_intr(struct ata_po return; /* 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_tag_valid(ap->active_tag) && (status & PORT_IRQ_PIOS_FIS)) + return; if (ata_ratelimit()) ata_port_printk(ap, KERN_INFO, "spurious interrupt " - : send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html