diff options
Diffstat (limited to 'drivers/scsi/sata_qstor.c')
-rw-r--r-- | drivers/scsi/sata_qstor.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/scsi/sata_qstor.c b/drivers/scsi/sata_qstor.c index a8987f5ff5cc..de05e2883f9c 100644 --- a/drivers/scsi/sata_qstor.c +++ b/drivers/scsi/sata_qstor.c | |||
@@ -170,7 +170,7 @@ static const struct ata_port_operations qs_ata_ops = { | |||
170 | .bmdma_status = qs_bmdma_status, | 170 | .bmdma_status = qs_bmdma_status, |
171 | }; | 171 | }; |
172 | 172 | ||
173 | static struct ata_port_info qs_port_info[] = { | 173 | static const struct ata_port_info qs_port_info[] = { |
174 | /* board_2068_idx */ | 174 | /* board_2068_idx */ |
175 | { | 175 | { |
176 | .sht = &qs_ata_sht, | 176 | .sht = &qs_ata_sht, |
@@ -409,8 +409,8 @@ static inline unsigned int qs_intr_pkt(struct ata_host_set *host_set) | |||
409 | case 3: /* device error */ | 409 | case 3: /* device error */ |
410 | pp->state = qs_state_idle; | 410 | pp->state = qs_state_idle; |
411 | qs_enter_reg_mode(qc->ap); | 411 | qs_enter_reg_mode(qc->ap); |
412 | ata_qc_complete(qc, | 412 | qc->err_mask |= ac_err_mask(sDST); |
413 | ac_err_mask(sDST)); | 413 | ata_qc_complete(qc); |
414 | break; | 414 | break; |
415 | default: | 415 | default: |
416 | break; | 416 | break; |
@@ -447,7 +447,8 @@ static inline unsigned int qs_intr_mmio(struct ata_host_set *host_set) | |||
447 | 447 | ||
448 | /* complete taskfile transaction */ | 448 | /* complete taskfile transaction */ |
449 | pp->state = qs_state_idle; | 449 | pp->state = qs_state_idle; |
450 | ata_qc_complete(qc, ac_err_mask(status)); | 450 | qc->err_mask |= ac_err_mask(status); |
451 | ata_qc_complete(qc); | ||
451 | handled = 1; | 452 | handled = 1; |
452 | } | 453 | } |
453 | } | 454 | } |