From 93555011561b92953326867733bfd7b00c562906 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Thu, 18 Apr 2019 01:51:22 +0000 Subject: [PATCH] qla2x00t-32gbit, target: Fix sqa_on_hw_pending_cmd_timeout() Only call scst_tgt_cmd_done() for the QLA_TGT_STATE_PROCESSED state. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8253 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- qla2x00t-32gbit/qla2x00-target/scst_qla2xxx.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/qla2x00t-32gbit/qla2x00-target/scst_qla2xxx.c b/qla2x00t-32gbit/qla2x00-target/scst_qla2xxx.c index 73cfac93e..d320fcb86 100644 --- a/qla2x00t-32gbit/qla2x00-target/scst_qla2xxx.c +++ b/qla2x00t-32gbit/qla2x00-target/scst_qla2xxx.c @@ -1913,7 +1913,6 @@ static void sqa_on_hw_pending_cmd_timeout(struct scst_cmd *scst_cmd) SCST_LOAD_SENSE(scst_sense_internal_failure)); scst_rx_data(scst_cmd, SCST_RX_STATUS_ERROR_SENSE_SET, SCST_CONTEXT_THREAD); - goto out; break; case QLA_TGT_STATE_PROCESSED: if (!cmd->cmd_sent_to_fw) { @@ -1922,14 +1921,13 @@ static void sqa_on_hw_pending_cmd_timeout(struct scst_cmd *scst_cmd) } else { TRACE_MGMT_DBG("Force finishing cmd %p", cmd); } + sqa_cleanup_hw_pending_cmd(vha, cmd); + scst_set_delivery_status(scst_cmd, SCST_CMD_DELIVERY_FAILED); + scst_tgt_cmd_done(scst_cmd, SCST_CONTEXT_THREAD); break; } - - sqa_cleanup_hw_pending_cmd(vha, cmd); - scst_set_delivery_status(scst_cmd, SCST_CMD_DELIVERY_FAILED); - scst_tgt_cmd_done(scst_cmd, SCST_CONTEXT_THREAD); -out: spin_unlock_irqrestore(qpair->qp_lock_ptr, flags); + TRACE_EXIT(); return; }