diff options
Diffstat (limited to 'drivers/ata/libata-sff.c')
-rw-r--r-- | drivers/ata/libata-sff.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c index d5dd88d6dea0..0e2c972292cf 100644 --- a/drivers/ata/libata-sff.c +++ b/drivers/ata/libata-sff.c | |||
@@ -1807,9 +1807,6 @@ retry: | |||
1807 | struct ata_port *ap = host->ports[i]; | 1807 | struct ata_port *ap = host->ports[i]; |
1808 | struct ata_queued_cmd *qc; | 1808 | struct ata_queued_cmd *qc; |
1809 | 1809 | ||
1810 | if (unlikely(ap->flags & ATA_FLAG_DISABLED)) | ||
1811 | continue; | ||
1812 | |||
1813 | qc = ata_qc_from_tag(ap, ap->link.active_tag); | 1810 | qc = ata_qc_from_tag(ap, ap->link.active_tag); |
1814 | if (qc) { | 1811 | if (qc) { |
1815 | if (!(qc->tf.flags & ATA_TFLAG_POLLING)) | 1812 | if (!(qc->tf.flags & ATA_TFLAG_POLLING)) |
@@ -1884,11 +1881,8 @@ void ata_sff_lost_interrupt(struct ata_port *ap) | |||
1884 | 1881 | ||
1885 | /* Only one outstanding command per SFF channel */ | 1882 | /* Only one outstanding command per SFF channel */ |
1886 | qc = ata_qc_from_tag(ap, ap->link.active_tag); | 1883 | qc = ata_qc_from_tag(ap, ap->link.active_tag); |
1887 | /* Check we have a live one.. */ | 1884 | /* We cannot lose an interrupt on a non-existent or polled command */ |
1888 | if (qc == NULL || !(qc->flags & ATA_QCFLAG_ACTIVE)) | 1885 | if (!qc || qc->tf.flags & ATA_TFLAG_POLLING) |
1889 | return; | ||
1890 | /* We cannot lose an interrupt on a polled command */ | ||
1891 | if (qc->tf.flags & ATA_TFLAG_POLLING) | ||
1892 | return; | 1886 | return; |
1893 | /* See if the controller thinks it is still busy - if so the command | 1887 | /* See if the controller thinks it is still busy - if so the command |
1894 | isn't a lost IRQ but is still in progress */ | 1888 | isn't a lost IRQ but is still in progress */ |