aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorGiridhar Malavali <giridhar.malavali@qlogic.com>2011-11-18 12:02:13 -0500
committerJames Bottomley <JBottomley@Parallels.com>2011-12-12 03:34:55 -0500
commit841c5e5cee140115b03355c39e4c3f1798ec34bc (patch)
tree5d5bf0c8b24aa66183792a43e7786764c34345a7 /drivers/scsi
parent0cd33fcfb54f2eb053ead3cca35ad9775fc01301 (diff)
[SCSI] qla2xxx: Stop unconditional completion of mailbox commands issued in interrupt mode during firmware hang.
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/qla2xxx/qla_nx.c5
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/drivers/scsi/qla2xxx/qla_nx.c b/drivers/scsi/qla2xxx/qla_nx.c
index 94bded5ddce4..d2005c3c8247 100644
--- a/drivers/scsi/qla2xxx/qla_nx.c
+++ b/drivers/scsi/qla2xxx/qla_nx.c
@@ -4075,7 +4075,10 @@ qla82xx_chip_reset_cleanup(scsi_qla_host_t *vha)
4075 ha->flags.isp82xx_fw_hung = 1; 4075 ha->flags.isp82xx_fw_hung = 1;
4076 if (ha->flags.mbox_busy) { 4076 if (ha->flags.mbox_busy) {
4077 ha->flags.mbox_int = 1; 4077 ha->flags.mbox_int = 1;
4078 complete(&ha->mbx_intr_comp); 4078 if (test_bit(MBX_INTR_WAIT,
4079 &ha->mbx_cmd_flags)) {
4080 complete(&ha->mbx_intr_comp);
4081 }
4079 } 4082 }
4080 break; 4083 break;
4081 } 4084 }
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 01c87004b219..abec1dd31194 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -4014,7 +4014,10 @@ qla2xxx_pci_error_detected(struct pci_dev *pdev, pci_channel_state_t state)
4014 ql_dbg(ql_dbg_aer, vha, 0x9001, 4014 ql_dbg(ql_dbg_aer, vha, 0x9001,
4015 "Due to pci channel io frozen, doing premature " 4015 "Due to pci channel io frozen, doing premature "
4016 "completion of mbx command.\n"); 4016 "completion of mbx command.\n");
4017 complete(&ha->mbx_intr_comp); 4017 if (test_bit(MBX_INTR_WAIT,
4018 &ha->mbx_cmd_flags)) {
4019 complete(&ha->mbx_intr_comp);
4020 }
4018 } 4021 }
4019 } 4022 }
4020 qla2x00_free_irqs(vha); 4023 qla2x00_free_irqs(vha);