From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> This patch adds a bugfix in tcm_qla2xxx_free_cmd() to explictly clear qla_tgt_cmd->cmd_stop_free during an exception before normal completion in order to prevent an infinite loop from occuring within qla_tgt_cmd release path in tcm_qla2xxx_release_cmd(). Reported-by: Eric Seppanen <eric@xxxxxxxxxxxxxxx> Cc: Madhuranath Iyengar <mni@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxxxxxxxx> --- drivers/target/tcm_qla2xxx/tcm_qla2xxx_fabric.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/drivers/target/tcm_qla2xxx/tcm_qla2xxx_fabric.c b/drivers/target/tcm_qla2xxx/tcm_qla2xxx_fabric.c index ff39978..30a8987 100644 --- a/drivers/target/tcm_qla2xxx/tcm_qla2xxx_fabric.c +++ b/drivers/target/tcm_qla2xxx/tcm_qla2xxx_fabric.c @@ -415,6 +415,11 @@ void tcm_qla2xxx_free_cmd(struct qla_tgt_cmd *cmd) return; } + if (!atomic_read(&cmd->se_cmd.t_transport_complete)) { + atomic_set(&cmd->cmd_stop_free, 1); + smp_mb__after_atomic_dec(); + } + atomic_set(&cmd->cmd_free, 1); smp_mb__after_atomic_dec(); -- 1.7.2.5 -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html