]> git.baikalelectronics.ru Git - kernel.git/commit
target: Drop incorrect ABORT_TASK put for completed commands
authorNicholas Bellinger <nab@linux-iscsi.org>
Sun, 6 Mar 2016 04:00:12 +0000 (20:00 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Sun, 6 Mar 2016 04:24:47 +0000 (20:24 -0800)
commitaeb83a8369a0356a1aa2902f70d6e28626a62735
tree6d6406de2bb6f3ab3cd67413e4e2329707f29099
parent291f3a266c2fb4cc67da2041222dede88422e1f3
target: Drop incorrect ABORT_TASK put for completed commands

This patch fixes a recent ABORT_TASK regression associated
with commit 5a83430d, where a left-over target_put_sess_cmd()
would still be called when __target_check_io_state() detected
a command has already been completed, and explicit ABORT must
be avoided.

Note commit 5a83430d dropped the local kref_get_unless_zero()
check in core_tmr_abort_task(), but did not drop this extra
corresponding target_put_sess_cmd() in the failure path.

So go ahead and drop this now bogus target_put_sess_cmd(),
and avoid this potential use-after-free.

Reported-by: Dan Lane <dracodan@gmail.com>
Cc: Quinn Tran <quinn.tran@qlogic.com>
Cc: Himanshu Madhani <himanshu.madhani@qlogic.com>
Cc: Sagi Grimberg <sagig@mellanox.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Andy Grover <agrover@redhat.com>
Cc: Mike Christie <mchristi@redhat.com>
Cc: stable@vger.kernel.org # 3.14+
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_tmr.c