diff options
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_isr.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_isr.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 42aa7a7c1a73..2003dbb70579 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c | |||
@@ -343,7 +343,7 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb) | |||
343 | 343 | ||
344 | ha->isp_ops.fw_dump(ha, 1); | 344 | ha->isp_ops.fw_dump(ha, 1); |
345 | 345 | ||
346 | if (IS_QLA24XX(ha) || IS_QLA25XX(ha)) { | 346 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { |
347 | if (mb[1] == 0 && mb[2] == 0) { | 347 | if (mb[1] == 0 && mb[2] == 0) { |
348 | qla_printk(KERN_ERR, ha, | 348 | qla_printk(KERN_ERR, ha, |
349 | "Unrecoverable Hardware Error: adapter " | 349 | "Unrecoverable Hardware Error: adapter " |
@@ -521,7 +521,7 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb) | |||
521 | */ | 521 | */ |
522 | if (ql2xprocessrscn && | 522 | if (ql2xprocessrscn && |
523 | !IS_QLA2100(ha) && !IS_QLA2200(ha) && !IS_QLA6312(ha) && | 523 | !IS_QLA2100(ha) && !IS_QLA2200(ha) && !IS_QLA6312(ha) && |
524 | !IS_QLA6322(ha) && !IS_QLA24XX(ha) && !IS_QLA25XX(ha) && | 524 | !IS_QLA6322(ha) && !IS_QLA24XX(ha) && !IS_QLA54XX(ha) && |
525 | ha->flags.init_done && mb[1] != 0xffff && | 525 | ha->flags.init_done && mb[1] != 0xffff && |
526 | ((ha->operating_mode == P2P && mb[1] != 0) || | 526 | ((ha->operating_mode == P2P && mb[1] != 0) || |
527 | (ha->operating_mode != P2P && mb[1] != | 527 | (ha->operating_mode != P2P && mb[1] != |
@@ -638,7 +638,7 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb) | |||
638 | "scsi(%ld): [R|Z]IO update completion.\n", | 638 | "scsi(%ld): [R|Z]IO update completion.\n", |
639 | ha->host_no)); | 639 | ha->host_no)); |
640 | 640 | ||
641 | if (IS_QLA24XX(ha) || IS_QLA25XX(ha)) | 641 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) |
642 | qla24xx_process_response_queue(ha); | 642 | qla24xx_process_response_queue(ha); |
643 | else | 643 | else |
644 | qla2x00_process_response_queue(ha); | 644 | qla2x00_process_response_queue(ha); |
@@ -810,7 +810,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt) | |||
810 | 810 | ||
811 | sts = (sts_entry_t *) pkt; | 811 | sts = (sts_entry_t *) pkt; |
812 | sts24 = (struct sts_entry_24xx *) pkt; | 812 | sts24 = (struct sts_entry_24xx *) pkt; |
813 | if (IS_QLA24XX(ha) || IS_QLA25XX(ha)) { | 813 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { |
814 | comp_status = le16_to_cpu(sts24->comp_status); | 814 | comp_status = le16_to_cpu(sts24->comp_status); |
815 | scsi_status = le16_to_cpu(sts24->scsi_status) & SS_MASK; | 815 | scsi_status = le16_to_cpu(sts24->scsi_status) & SS_MASK; |
816 | } else { | 816 | } else { |
@@ -838,9 +838,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt) | |||
838 | qla_printk(KERN_WARNING, ha, "Status Entry invalid handle.\n"); | 838 | qla_printk(KERN_WARNING, ha, "Status Entry invalid handle.\n"); |
839 | 839 | ||
840 | set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); | 840 | set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); |
841 | if (ha->dpc_wait && !ha->dpc_active) | 841 | qla2xxx_wake_dpc(ha); |
842 | up(ha->dpc_wait); | ||
843 | |||
844 | return; | 842 | return; |
845 | } | 843 | } |
846 | cp = sp->cmd; | 844 | cp = sp->cmd; |
@@ -862,7 +860,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt) | |||
862 | fcport = sp->fcport; | 860 | fcport = sp->fcport; |
863 | 861 | ||
864 | sense_len = rsp_info_len = resid_len = 0; | 862 | sense_len = rsp_info_len = resid_len = 0; |
865 | if (IS_QLA24XX(ha) || IS_QLA25XX(ha)) { | 863 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { |
866 | sense_len = le32_to_cpu(sts24->sense_len); | 864 | sense_len = le32_to_cpu(sts24->sense_len); |
867 | rsp_info_len = le32_to_cpu(sts24->rsp_data_len); | 865 | rsp_info_len = le32_to_cpu(sts24->rsp_data_len); |
868 | resid_len = le32_to_cpu(sts24->rsp_residual_count); | 866 | resid_len = le32_to_cpu(sts24->rsp_residual_count); |
@@ -880,7 +878,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt) | |||
880 | /* Check for any FCP transport errors. */ | 878 | /* Check for any FCP transport errors. */ |
881 | if (scsi_status & SS_RESPONSE_INFO_LEN_VALID) { | 879 | if (scsi_status & SS_RESPONSE_INFO_LEN_VALID) { |
882 | /* Sense data lies beyond any FCP RESPONSE data. */ | 880 | /* Sense data lies beyond any FCP RESPONSE data. */ |
883 | if (IS_QLA24XX(ha) || IS_QLA25XX(ha)) | 881 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) |
884 | sense_data += rsp_info_len; | 882 | sense_data += rsp_info_len; |
885 | if (rsp_info_len > 3 && rsp_info[3]) { | 883 | if (rsp_info_len > 3 && rsp_info[3]) { |
886 | DEBUG2(printk("scsi(%ld:%d:%d:%d) FCP I/O protocol " | 884 | DEBUG2(printk("scsi(%ld:%d:%d:%d) FCP I/O protocol " |
@@ -1119,7 +1117,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt) | |||
1119 | case CS_TIMEOUT: | 1117 | case CS_TIMEOUT: |
1120 | cp->result = DID_BUS_BUSY << 16; | 1118 | cp->result = DID_BUS_BUSY << 16; |
1121 | 1119 | ||
1122 | if (IS_QLA24XX(ha) || IS_QLA25XX(ha)) { | 1120 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { |
1123 | DEBUG2(printk(KERN_INFO | 1121 | DEBUG2(printk(KERN_INFO |
1124 | "scsi(%ld:%d:%d:%d): TIMEOUT status detected " | 1122 | "scsi(%ld:%d:%d:%d): TIMEOUT status detected " |
1125 | "0x%x-0x%x\n", ha->host_no, cp->device->channel, | 1123 | "0x%x-0x%x\n", ha->host_no, cp->device->channel, |
@@ -1199,7 +1197,7 @@ qla2x00_status_cont_entry(scsi_qla_host_t *ha, sts_cont_entry_t *pkt) | |||
1199 | } | 1197 | } |
1200 | 1198 | ||
1201 | /* Move sense data. */ | 1199 | /* Move sense data. */ |
1202 | if (IS_QLA24XX(ha) || IS_QLA25XX(ha)) | 1200 | if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) |
1203 | host_to_fcp_swap(pkt->data, sizeof(pkt->data)); | 1201 | host_to_fcp_swap(pkt->data, sizeof(pkt->data)); |
1204 | memcpy(sp->request_sense_ptr, pkt->data, sense_sz); | 1202 | memcpy(sp->request_sense_ptr, pkt->data, sense_sz); |
1205 | DEBUG5(qla2x00_dump_buffer(sp->request_sense_ptr, sense_sz)); | 1203 | DEBUG5(qla2x00_dump_buffer(sp->request_sense_ptr, sense_sz)); |
@@ -1271,8 +1269,7 @@ qla2x00_error_entry(scsi_qla_host_t *ha, sts_entry_t *pkt) | |||
1271 | "Error entry - invalid handle\n"); | 1269 | "Error entry - invalid handle\n"); |
1272 | 1270 | ||
1273 | set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); | 1271 | set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); |
1274 | if (ha->dpc_wait && !ha->dpc_active) | 1272 | qla2xxx_wake_dpc(ha); |
1275 | up(ha->dpc_wait); | ||
1276 | } | 1273 | } |
1277 | } | 1274 | } |
1278 | 1275 | ||