diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2006-01-27 02:36:14 -0500 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2006-01-27 02:36:14 -0500 |
commit | 7dfb869c8e45e5863534f38fdac990829b22964a (patch) | |
tree | f36bbdba46b022356d05ac26d5073e395d2f8abd /drivers | |
parent | 628e386e27674906326455f01d87878a5f0cbce7 (diff) | |
parent | 11a56d2439259892319df81cf1582687d7e7fde5 (diff) |
Merge branch 'tmp'
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/ahci.c | 4 | ||||
-rw-r--r-- | drivers/scsi/libata-core.c | 26 | ||||
-rw-r--r-- | drivers/scsi/libata-scsi.c | 6 | ||||
-rw-r--r-- | drivers/scsi/sata_mv.c | 2 | ||||
-rw-r--r-- | drivers/scsi/sata_sil24.c | 2 |
5 files changed, 20 insertions, 20 deletions
diff --git a/drivers/scsi/ahci.c b/drivers/scsi/ahci.c index 30676b0eb366..bb3686ae1885 100644 --- a/drivers/scsi/ahci.c +++ b/drivers/scsi/ahci.c | |||
@@ -680,7 +680,7 @@ static void ahci_eng_timeout(struct ata_port *ap) | |||
680 | * not being called from the SCSI EH. | 680 | * not being called from the SCSI EH. |
681 | */ | 681 | */ |
682 | qc->scsidone = scsi_finish_command; | 682 | qc->scsidone = scsi_finish_command; |
683 | qc->err_mask |= AC_ERR_OTHER; | 683 | qc->err_mask |= AC_ERR_TIMEOUT; |
684 | ata_qc_complete(qc); | 684 | ata_qc_complete(qc); |
685 | } | 685 | } |
686 | 686 | ||
@@ -721,7 +721,7 @@ static inline int ahci_host_intr(struct ata_port *ap, struct ata_queued_cmd *qc) | |||
721 | ahci_restart_port(ap, status); | 721 | ahci_restart_port(ap, status); |
722 | 722 | ||
723 | if (qc) { | 723 | if (qc) { |
724 | qc->err_mask |= AC_ERR_OTHER; | 724 | qc->err_mask |= err_mask; |
725 | ata_qc_complete(qc); | 725 | ata_qc_complete(qc); |
726 | } | 726 | } |
727 | } | 727 | } |
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index 20bccabb54fc..5b6bc3655068 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c | |||
@@ -1126,8 +1126,10 @@ 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 | if (ata_qc_issue(qc)) { |
1130 | goto issue_fail; | 1130 | qc->err_mask = AC_ERR_OTHER; |
1131 | ata_qc_complete(qc); | ||
1132 | } | ||
1131 | 1133 | ||
1132 | spin_unlock_irqrestore(&ap->host_set->lock, flags); | 1134 | spin_unlock_irqrestore(&ap->host_set->lock, flags); |
1133 | 1135 | ||
@@ -1141,7 +1143,7 @@ ata_exec_internal(struct ata_port *ap, struct ata_device *dev, | |||
1141 | * spurious interrupt. We can live with that. | 1143 | * spurious interrupt. We can live with that. |
1142 | */ | 1144 | */ |
1143 | if (qc->flags & ATA_QCFLAG_ACTIVE) { | 1145 | if (qc->flags & ATA_QCFLAG_ACTIVE) { |
1144 | qc->err_mask = AC_ERR_OTHER; | 1146 | qc->err_mask = AC_ERR_TIMEOUT; |
1145 | ata_qc_complete(qc); | 1147 | ata_qc_complete(qc); |
1146 | printk(KERN_WARNING "ata%u: qc timeout (cmd 0x%x)\n", | 1148 | printk(KERN_WARNING "ata%u: qc timeout (cmd 0x%x)\n", |
1147 | ap->id, command); | 1149 | ap->id, command); |
@@ -1156,11 +1158,6 @@ ata_exec_internal(struct ata_port *ap, struct ata_device *dev, | |||
1156 | ata_qc_free(qc); | 1158 | ata_qc_free(qc); |
1157 | 1159 | ||
1158 | return err_mask; | 1160 | return err_mask; |
1159 | |||
1160 | issue_fail: | ||
1161 | ata_qc_free(qc); | ||
1162 | spin_unlock_irqrestore(&ap->host_set->lock, flags); | ||
1163 | return AC_ERR_OTHER; | ||
1164 | } | 1161 | } |
1165 | 1162 | ||
1166 | /** | 1163 | /** |
@@ -2929,7 +2926,7 @@ static unsigned long ata_pio_poll(struct ata_port *ap) | |||
2929 | status = ata_chk_status(ap); | 2926 | status = ata_chk_status(ap); |
2930 | if (status & ATA_BUSY) { | 2927 | if (status & ATA_BUSY) { |
2931 | if (time_after(jiffies, ap->pio_task_timeout)) { | 2928 | if (time_after(jiffies, ap->pio_task_timeout)) { |
2932 | qc->err_mask |= AC_ERR_ATA_BUS; | 2929 | qc->err_mask |= AC_ERR_TIMEOUT; |
2933 | ap->hsm_task_state = HSM_ST_TMOUT; | 2930 | ap->hsm_task_state = HSM_ST_TMOUT; |
2934 | return 0; | 2931 | return 0; |
2935 | } | 2932 | } |
@@ -3474,7 +3471,7 @@ static void atapi_pio_bytes(struct ata_queued_cmd *qc) | |||
3474 | err_out: | 3471 | err_out: |
3475 | printk(KERN_INFO "ata%u: dev %u: ATAPI check failed\n", | 3472 | printk(KERN_INFO "ata%u: dev %u: ATAPI check failed\n", |
3476 | ap->id, dev->devno); | 3473 | ap->id, dev->devno); |
3477 | qc->err_mask |= AC_ERR_ATA_BUS; | 3474 | qc->err_mask |= AC_ERR_HSM; |
3478 | ap->hsm_task_state = HSM_ST_ERR; | 3475 | ap->hsm_task_state = HSM_ST_ERR; |
3479 | } | 3476 | } |
3480 | 3477 | ||
@@ -3532,7 +3529,7 @@ static void ata_pio_block(struct ata_port *ap) | |||
3532 | } else { | 3529 | } else { |
3533 | /* handle BSY=0, DRQ=0 as error */ | 3530 | /* handle BSY=0, DRQ=0 as error */ |
3534 | if ((status & ATA_DRQ) == 0) { | 3531 | if ((status & ATA_DRQ) == 0) { |
3535 | qc->err_mask |= AC_ERR_ATA_BUS; | 3532 | qc->err_mask |= AC_ERR_HSM; |
3536 | ap->hsm_task_state = HSM_ST_ERR; | 3533 | ap->hsm_task_state = HSM_ST_ERR; |
3537 | return; | 3534 | return; |
3538 | } | 3535 | } |
@@ -3873,10 +3870,10 @@ int ata_qc_issue(struct ata_queued_cmd *qc) | |||
3873 | if (ata_should_dma_map(qc)) { | 3870 | if (ata_should_dma_map(qc)) { |
3874 | if (qc->flags & ATA_QCFLAG_SG) { | 3871 | if (qc->flags & ATA_QCFLAG_SG) { |
3875 | if (ata_sg_setup(qc)) | 3872 | if (ata_sg_setup(qc)) |
3876 | goto err_out; | 3873 | goto sg_err; |
3877 | } else if (qc->flags & ATA_QCFLAG_SINGLE) { | 3874 | } else if (qc->flags & ATA_QCFLAG_SINGLE) { |
3878 | if (ata_sg_setup_one(qc)) | 3875 | if (ata_sg_setup_one(qc)) |
3879 | goto err_out; | 3876 | goto sg_err; |
3880 | } | 3877 | } |
3881 | } else { | 3878 | } else { |
3882 | qc->flags &= ~ATA_QCFLAG_DMAMAP; | 3879 | qc->flags &= ~ATA_QCFLAG_DMAMAP; |
@@ -3889,7 +3886,8 @@ int ata_qc_issue(struct ata_queued_cmd *qc) | |||
3889 | 3886 | ||
3890 | return ap->ops->qc_issue(qc); | 3887 | return ap->ops->qc_issue(qc); |
3891 | 3888 | ||
3892 | err_out: | 3889 | sg_err: |
3890 | qc->flags &= ~ATA_QCFLAG_DMAMAP; | ||
3893 | return -1; | 3891 | return -1; |
3894 | } | 3892 | } |
3895 | 3893 | ||
diff --git a/drivers/scsi/libata-scsi.c b/drivers/scsi/libata-scsi.c index ce3fe928a386..c496309f691a 100644 --- a/drivers/scsi/libata-scsi.c +++ b/drivers/scsi/libata-scsi.c | |||
@@ -1322,8 +1322,10 @@ static void ata_scsi_translate(struct ata_port *ap, struct ata_device *dev, | |||
1322 | goto early_finish; | 1322 | goto early_finish; |
1323 | 1323 | ||
1324 | /* select device, send command to hardware */ | 1324 | /* select device, send command to hardware */ |
1325 | if (ata_qc_issue(qc)) | 1325 | if (ata_qc_issue(qc)) { |
1326 | goto err_did; | 1326 | qc->err_mask |= AC_ERR_OTHER; |
1327 | ata_qc_complete(qc); | ||
1328 | } | ||
1327 | 1329 | ||
1328 | VPRINTK("EXIT\n"); | 1330 | VPRINTK("EXIT\n"); |
1329 | return; | 1331 | return; |
diff --git a/drivers/scsi/sata_mv.c b/drivers/scsi/sata_mv.c index e9bee1210c23..68d17791896f 100644 --- a/drivers/scsi/sata_mv.c +++ b/drivers/scsi/sata_mv.c | |||
@@ -1865,7 +1865,7 @@ static void mv_eng_timeout(struct ata_port *ap) | |||
1865 | */ | 1865 | */ |
1866 | spin_lock_irqsave(&ap->host_set->lock, flags); | 1866 | spin_lock_irqsave(&ap->host_set->lock, flags); |
1867 | qc->scsidone = scsi_finish_command; | 1867 | qc->scsidone = scsi_finish_command; |
1868 | qc->err_mask |= AC_ERR_OTHER; | 1868 | qc->err_mask |= AC_ERR_TIMEOUT; |
1869 | ata_qc_complete(qc); | 1869 | ata_qc_complete(qc); |
1870 | spin_unlock_irqrestore(&ap->host_set->lock, flags); | 1870 | spin_unlock_irqrestore(&ap->host_set->lock, flags); |
1871 | } | 1871 | } |
diff --git a/drivers/scsi/sata_sil24.c b/drivers/scsi/sata_sil24.c index 923130185a9e..fb59012b9fbe 100644 --- a/drivers/scsi/sata_sil24.c +++ b/drivers/scsi/sata_sil24.c | |||
@@ -653,7 +653,7 @@ static void sil24_eng_timeout(struct ata_port *ap) | |||
653 | */ | 653 | */ |
654 | printk(KERN_ERR "ata%u: command timeout\n", ap->id); | 654 | printk(KERN_ERR "ata%u: command timeout\n", ap->id); |
655 | qc->scsidone = scsi_finish_command; | 655 | qc->scsidone = scsi_finish_command; |
656 | qc->err_mask |= AC_ERR_OTHER; | 656 | qc->err_mask |= AC_ERR_TIMEOUT; |
657 | ata_qc_complete(qc); | 657 | ata_qc_complete(qc); |
658 | 658 | ||
659 | sil24_reset_controller(ap); | 659 | sil24_reset_controller(ap); |