diff options
Diffstat (limited to 'drivers/ata/libata-core.c')
-rw-r--r-- | drivers/ata/libata-core.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 0ddaf43d68c6..d7f0f1b1ae3e 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -5028,12 +5028,14 @@ void ata_qc_complete(struct ata_queued_cmd *qc) | |||
5028 | qc->flags |= ATA_QCFLAG_FAILED; | 5028 | qc->flags |= ATA_QCFLAG_FAILED; |
5029 | 5029 | ||
5030 | if (unlikely(qc->flags & ATA_QCFLAG_FAILED)) { | 5030 | if (unlikely(qc->flags & ATA_QCFLAG_FAILED)) { |
5031 | if (!ata_tag_internal(qc->tag)) { | 5031 | /* always fill result TF for failed qc */ |
5032 | /* always fill result TF for failed qc */ | 5032 | fill_result_tf(qc); |
5033 | fill_result_tf(qc); | 5033 | |
5034 | if (!ata_tag_internal(qc->tag)) | ||
5034 | ata_qc_schedule_eh(qc); | 5035 | ata_qc_schedule_eh(qc); |
5035 | return; | 5036 | else |
5036 | } | 5037 | __ata_qc_complete(qc); |
5038 | return; | ||
5037 | } | 5039 | } |
5038 | 5040 | ||
5039 | WARN_ON_ONCE(ap->pflags & ATA_PFLAG_FROZEN); | 5041 | WARN_ON_ONCE(ap->pflags & ATA_PFLAG_FROZEN); |
@@ -5591,6 +5593,9 @@ void ata_link_init(struct ata_port *ap, struct ata_link *link, int pmp) | |||
5591 | 5593 | ||
5592 | dev->link = link; | 5594 | dev->link = link; |
5593 | dev->devno = dev - link->device; | 5595 | dev->devno = dev - link->device; |
5596 | #ifdef CONFIG_ATA_ACPI | ||
5597 | dev->gtf_filter = ata_acpi_gtf_filter; | ||
5598 | #endif | ||
5594 | ata_dev_init(dev); | 5599 | ata_dev_init(dev); |
5595 | } | 5600 | } |
5596 | } | 5601 | } |