aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_isr.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_isr.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c23
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