summaryrefslogtreecommitdiff
path: root/init/main.c
diff options
context:
space:
mode:
authorNicholas Bellinger <nab@linux-iscsi.org>2017-06-30 00:08:13 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-11-18 11:22:25 +0100
commitb2dbcb7c969dcb6a2dcbe901a4a9070bb30e4788 (patch)
treef59ec6fe1df82e2e6c9a3e9e923f458d7f7c251a /init/main.c
parentff49271816665c0567d655bfeca695a9c8fb6919 (diff)
qla2xxx: Fix incorrect tcm_qla2xxx_free_cmd use during TMR ABORT (v2)
commit 6bcbb3174caa5f1ccc894f8ae077631659d5a629 upstream. This patch drops two incorrect usages of tcm_qla2xxx_free_cmd() during TMR ABORT within tcm_qla2xxx_handle_data_work() and tcm_qla2xxx_aborted_task(), which where attempting to dispatch into workqueue context to do tcm_qla2xxx_complete_free() and subsequently invoke transport_generic_free_cmd(). This is incorrect because during TMR ABORT target-core will drop the outstanding se_cmd->cmd_kref references once it has quiesced the se_cmd via transport_wait_for_tasks(), and in the case of qla2xxx it should not attempt to do it's own transport_generic_free_cmd() once the abort has occured. As reported by Pascal, this was originally manifesting as a BUG_ON(cmd->cmd_in_wq) in qlt_free_cmd() during TMR ABORT, with a LIO backend that had sufficently high enough WRITE latency to trigger a host side TMR ABORT_TASK. (v2: Drop the qla_tgt_cmd->write_pending_abort_comp changes, as they will be addressed in a seperate series) Reported-by: Pascal de Bruijn <p.debruijn@unilogic.nl> Tested-by: Pascal de Bruijn <p.debruijn@unilogic.nl> Cc: Pascal de Bruijn <p.debruijn@unilogic.nl> Reported-by: Lukasz Engel <lukasz.engel@softax.pl> Cc: Lukasz Engel <lukasz.engel@softax.pl> Acked-by: Himanshu Madhani <himanshu.madhani@cavium.com> Cc: Quinn Tran <quinn.tran@cavium.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'init/main.c')
0 files changed, 0 insertions, 0 deletions