diff options
| author | Unicorn Chang <uchang@tw.ibm.com> | 2006-08-01 00:18:07 -0400 |
|---|---|---|
| committer | Jeff Garzik <jeff@garzik.org> | 2006-08-03 17:34:52 -0400 |
| commit | f1d39b291e2263f5e2f2ec5d4061802f76d8ae67 (patch) | |
| tree | 29c33d63b3679103459932d43b8818abdcc7d3d5 | |
| parent | fd60ae404f104f12369e654af9cf03b1f1047661 (diff) | |
[PATCH] ahci: skip protocol test altogether in spurious interrupt code
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@tw.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
| -rw-r--r-- | drivers/scsi/ahci.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/scsi/ahci.c b/drivers/scsi/ahci.c index 77e7202a0eba..904c25fb4ba4 100644 --- a/drivers/scsi/ahci.c +++ b/drivers/scsi/ahci.c | |||
| @@ -940,14 +940,8 @@ static void ahci_host_intr(struct ata_port *ap) | |||
| 940 | return; | 940 | return; |
| 941 | 941 | ||
| 942 | /* ignore interim PIO setup fis interrupts */ | 942 | /* ignore interim PIO setup fis interrupts */ |
| 943 | if (ata_tag_valid(ap->active_tag)) { | 943 | if (ata_tag_valid(ap->active_tag) && (status & PORT_IRQ_PIOS_FIS)) |
| 944 | struct ata_queued_cmd *qc = | 944 | return; |
| 945 | ata_qc_from_tag(ap, ap->active_tag); | ||
| 946 | |||
| 947 | if (qc && qc->tf.protocol == ATA_PROT_PIO && | ||
| 948 | (status & PORT_IRQ_PIOS_FIS)) | ||
| 949 | return; | ||
| 950 | } | ||
| 951 | 945 | ||
| 952 | if (ata_ratelimit()) | 946 | if (ata_ratelimit()) |
| 953 | ata_port_printk(ap, KERN_INFO, "spurious interrupt " | 947 | ata_port_printk(ap, KERN_INFO, "spurious interrupt " |
