aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/sata_mv.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/sata_mv.c')
-rw-r--r--drivers/scsi/sata_mv.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/scsi/sata_mv.c b/drivers/scsi/sata_mv.c
index 9321cdf45680..b2bf16a9bf4b 100644
--- a/drivers/scsi/sata_mv.c
+++ b/drivers/scsi/sata_mv.c
@@ -431,7 +431,7 @@ static const struct ata_port_operations mv6_ops = {
431 .host_stop = mv_host_stop, 431 .host_stop = mv_host_stop,
432}; 432};
433 433
434static struct ata_port_info mv_port_info[] = { 434static const struct ata_port_info mv_port_info[] = {
435 { /* chip_504x */ 435 { /* chip_504x */
436 .sht = &mv_sht, 436 .sht = &mv_sht,
437 .host_flags = MV_COMMON_FLAGS, 437 .host_flags = MV_COMMON_FLAGS,
@@ -1243,8 +1243,10 @@ static void mv_host_intr(struct ata_host_set *host_set, u32 relevant,
1243 VPRINTK("port %u IRQ found for qc, " 1243 VPRINTK("port %u IRQ found for qc, "
1244 "ata_status 0x%x\n", port,ata_status); 1244 "ata_status 0x%x\n", port,ata_status);
1245 /* mark qc status appropriately */ 1245 /* mark qc status appropriately */
1246 if (!(qc->tf.ctl & ATA_NIEN)) 1246 if (!(qc->tf.ctl & ATA_NIEN)) {
1247 ata_qc_complete(qc, err_mask); 1247 qc->err_mask |= err_mask;
1248 ata_qc_complete(qc);
1249 }
1248 } 1250 }
1249 } 1251 }
1250 } 1252 }
@@ -1865,7 +1867,8 @@ static void mv_eng_timeout(struct ata_port *ap)
1865 */ 1867 */
1866 spin_lock_irqsave(&ap->host_set->lock, flags); 1868 spin_lock_irqsave(&ap->host_set->lock, flags);
1867 qc->scsidone = scsi_finish_command; 1869 qc->scsidone = scsi_finish_command;
1868 ata_qc_complete(qc, AC_ERR_OTHER); 1870 qc->err_mask |= AC_ERR_OTHER;
1871 ata_qc_complete(qc);
1869 spin_unlock_irqrestore(&ap->host_set->lock, flags); 1872 spin_unlock_irqrestore(&ap->host_set->lock, flags);
1870 } 1873 }
1871} 1874}