aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libata-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/libata-core.c')
-rw-r--r--drivers/scsi/libata-core.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
index 5b6bc3655068..50fb7cea94eb 100644
--- a/drivers/scsi/libata-core.c
+++ b/drivers/scsi/libata-core.c
@@ -1126,10 +1126,9 @@ ata_exec_internal(struct ata_port *ap, struct ata_device *dev,
1126 qc->private_data = &wait; 1126 qc->private_data = &wait;
1127 qc->complete_fn = ata_qc_complete_internal; 1127 qc->complete_fn = ata_qc_complete_internal;
1128 1128
1129 if (ata_qc_issue(qc)) { 1129 qc->err_mask = ata_qc_issue(qc);
1130 qc->err_mask = AC_ERR_OTHER; 1130 if (qc->err_mask)
1131 ata_qc_complete(qc); 1131 ata_qc_complete(qc);
1132 }
1133 1132
1134 spin_unlock_irqrestore(&ap->host_set->lock, flags); 1133 spin_unlock_irqrestore(&ap->host_set->lock, flags);
1135 1134
@@ -3860,10 +3859,10 @@ static inline int ata_should_dma_map(struct ata_queued_cmd *qc)
3860 * spin_lock_irqsave(host_set lock) 3859 * spin_lock_irqsave(host_set lock)
3861 * 3860 *
3862 * RETURNS: 3861 * RETURNS:
3863 * Zero on success, negative on error. 3862 * Zero on success, AC_ERR_* mask on failure
3864 */ 3863 */
3865 3864
3866int ata_qc_issue(struct ata_queued_cmd *qc) 3865unsigned int ata_qc_issue(struct ata_queued_cmd *qc)
3867{ 3866{
3868 struct ata_port *ap = qc->ap; 3867 struct ata_port *ap = qc->ap;
3869 3868
@@ -3888,7 +3887,7 @@ int ata_qc_issue(struct ata_queued_cmd *qc)
3888 3887
3889sg_err: 3888sg_err:
3890 qc->flags &= ~ATA_QCFLAG_DMAMAP; 3889 qc->flags &= ~ATA_QCFLAG_DMAMAP;
3891 return -1; 3890 return AC_ERR_SYSTEM;
3892} 3891}
3893 3892
3894 3893
@@ -3907,10 +3906,10 @@ sg_err:
3907 * spin_lock_irqsave(host_set lock) 3906 * spin_lock_irqsave(host_set lock)
3908 * 3907 *
3909 * RETURNS: 3908 * RETURNS:
3910 * Zero on success, negative on error. 3909 * Zero on success, AC_ERR_* mask on failure
3911 */ 3910 */
3912 3911
3913int ata_qc_issue_prot(struct ata_queued_cmd *qc) 3912unsigned int ata_qc_issue_prot(struct ata_queued_cmd *qc)
3914{ 3913{
3915 struct ata_port *ap = qc->ap; 3914 struct ata_port *ap = qc->ap;
3916 3915
@@ -4015,7 +4014,7 @@ int ata_qc_issue_prot(struct ata_queued_cmd *qc)
4015 4014
4016 default: 4015 default:
4017 WARN_ON(1); 4016 WARN_ON(1);
4018 return -1; 4017 return AC_ERR_SYSTEM;
4019 } 4018 }
4020 4019
4021 return 0; 4020 return 0;