Nicholas Bellinger
5f572526a1
qla2xxx: Fix incorrect tcm_qla2xxx_free_cmd use during TMR ABORT
...
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.
In addition, for the case in tcm_qla2xxx_write_pending_status()
and tcm_qla2xxx_handle_data_work() that waits for outstanding
FCP WRITE data transfer to complete before preceeding with a
TMR ABORT, avoid se_cmd->t_transport_stop_comp that is already
used by transport_wait_for_tasks() and use a qla2xxx internal
struct completion instead.
Reported-by: Pascal de Bruijn <p.debruijn@unilogic.nl>
Tested-by: Pascal de Bruijn <p.debruijn@unilogic.nl>
Acked-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Cc: Quinn Tran <quinn.tran@cavium.com>
Cc: <stable@vger.kernel.org> # 3.10+
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2017-07-06 23:11:35 -07:00
..
2017-05-04 12:19:44 -07:00
2017-04-19 22:17:23 -04:00
2017-04-21 10:34:29 -04:00
2016-12-24 11:46:01 -08:00
2016-11-08 17:29:48 -05:00
2017-03-30 11:37:16 -04:00
2017-04-21 10:11:34 -04:00
2017-03-02 08:42:29 +01:00
2017-03-02 08:42:29 +01:00
2017-04-06 12:57:03 -04:00
2017-04-18 21:55:03 -04:00
2017-04-13 22:55:42 -04:00
2017-03-19 13:16:37 -04:00
2017-05-04 12:19:44 -07:00
2017-04-25 13:00:59 -04:00
2017-03-23 09:57:23 -04:00
2017-04-21 10:34:29 -04:00
2017-04-18 21:50:29 -04:00
2017-07-06 23:11:28 -07:00
2017-05-08 17:15:13 -07:00
2017-04-11 20:58:26 -04:00
2017-05-04 12:19:44 -07:00
2017-05-04 12:19:44 -07:00
2017-05-08 17:15:14 -07:00
2017-05-08 17:15:13 -07:00
2017-04-21 10:34:29 -04:00
2017-05-04 19:15:35 -07:00
2015-05-31 18:06:28 -07:00
2017-04-21 10:34:29 -04:00
2017-05-04 12:19:44 -07:00
2017-05-04 12:19:44 -07:00
2017-07-06 23:11:35 -07:00
2017-04-26 18:34:34 -04:00
2017-02-22 18:41:42 -05:00
2017-05-04 12:19:44 -07:00
2016-09-14 13:19:29 -04:00
2017-05-04 12:19:44 -07:00
2016-12-24 11:46:01 -08:00
2016-12-14 15:25:12 -05:00
2016-12-24 11:46:01 -08:00
2016-12-14 15:25:12 -05:00
2016-12-24 11:46:01 -08:00
2016-12-14 15:25:12 -05:00
2016-07-13 22:33:23 -04:00
2016-07-13 22:33:23 -04:00
2015-08-07 15:03:42 +02:00
2017-04-04 19:39:39 -04:00
2017-04-20 12:02:32 +01:00
2017-04-20 12:02:32 +01:00
2015-04-09 18:08:31 -07:00
2015-05-31 18:06:28 -07:00
2015-05-31 18:06:28 -07:00
2015-04-17 10:13:56 -07:00
2017-01-31 21:39:22 -05:00
2015-11-25 22:08:55 -05:00
2015-11-25 22:08:52 -05:00
2017-04-21 10:31:33 -04:00
2017-04-21 10:31:33 -04:00
2015-04-14 09:50:27 -07:00
2016-08-16 00:49:32 -04:00
2015-02-02 09:57:46 -08:00
2016-11-16 20:43:50 -05:00
2017-01-05 00:21:12 -05:00
2016-05-10 22:01:07 -04:00
2015-11-09 17:11:57 -08:00
2016-02-23 21:27:02 -05:00
2015-11-09 16:32:14 -08:00
2017-04-20 12:02:32 +01:00
2016-02-25 21:16:49 -05:00
2017-04-20 12:02:32 +01:00
2017-01-27 15:08:35 -07:00
2017-03-15 13:36:22 -04:00
2017-05-04 12:19:44 -07:00
2017-03-15 13:37:10 -04:00
2016-12-24 11:46:01 -08:00
2015-08-12 13:14:57 -07:00
2016-02-25 21:10:53 -05:00
2015-11-20 11:39:03 -05:00
2017-05-04 12:19:44 -07:00
2017-03-23 12:04:05 -04:00
2016-11-08 17:29:57 -05:00
2016-12-24 11:46:01 -08:00
2016-05-16 11:14:29 -04:00
2017-05-08 17:15:15 -07:00
2016-01-27 20:36:10 +08:00
2017-03-15 13:37:18 -04:00
2016-01-27 20:36:10 +08:00
2017-05-04 12:19:44 -07:00
2016-02-05 16:29:28 -06:00
2017-05-04 12:19:44 -07:00
2017-01-31 21:38:35 -05:00
2017-04-26 15:09:04 -06:00
2016-12-24 11:46:01 -08:00
2016-02-05 16:29:28 -06:00
2017-04-24 18:16:49 -04:00
2015-05-31 18:06:28 -07:00
2017-01-31 21:38:58 -05:00
2017-01-31 21:37:44 -05:00
2015-05-31 18:06:28 -07:00
2017-04-20 12:16:10 -06:00
2017-04-24 18:11:22 -04:00
2017-04-24 18:11:22 -04:00
2016-02-23 21:27:02 -05:00
2015-05-31 18:06:28 -07:00
2016-04-30 09:25:26 -07:00
2017-04-20 12:02:32 +01:00
2016-03-01 20:06:49 -05:00
2016-11-28 15:51:31 -05:00
2017-02-22 19:33:00 -05:00
2017-01-31 22:08:44 -05:00
2017-04-26 15:09:04 -06:00
2017-04-26 15:09:04 -06:00
2016-12-07 18:13:52 -05:00
2017-02-22 18:41:42 -05:00
2017-05-04 12:19:44 -07:00
2017-02-22 19:35:24 -05:00
2017-05-06 11:25:08 -07:00
2015-02-04 08:00:24 -08:00
2017-04-13 13:58:20 -04:00
2016-02-19 10:52:45 -05:00
2017-05-04 12:19:44 -07:00
2016-12-24 11:46:01 -08:00
2016-03-14 21:05:04 -04:00
2016-10-11 18:02:09 -04:00
2016-12-14 15:51:17 -05:00
2016-04-11 16:57:09 -04:00
2017-04-19 19:13:52 -04:00
2017-03-27 22:03:33 -04:00
2017-05-04 12:19:44 -07:00
2017-02-23 16:57:19 -05:00
2017-02-06 19:10:41 -05:00
2017-01-31 14:00:34 -07:00
2016-09-15 09:51:14 -04:00
2017-05-04 12:19:44 -07:00
2017-05-04 12:19:44 -07:00
2017-05-04 12:19:44 -07:00
2016-04-11 16:57:09 -04:00
2017-04-06 12:48:05 -04:00
2017-05-04 12:19:44 -07:00
2017-03-15 19:27:46 -04:00
2016-02-23 21:27:02 -05:00
2017-03-15 19:27:46 -04:00
2017-02-23 16:57:19 -05:00
2017-04-07 17:07:14 -04:00
2017-04-20 12:16:10 -06:00
2015-11-18 11:59:09 -05:00
2017-04-26 18:32:29 -04:00
2017-05-04 12:19:44 -07:00
2017-02-21 11:51:42 -08:00
2015-08-10 23:07:05 -04:00
2015-05-31 18:06:28 -07:00
2017-05-10 11:33:08 -07:00
2017-03-06 22:27:33 -05:00
2017-01-11 22:31:03 -05:00
2015-02-02 09:57:46 -08:00
2016-09-01 17:52:01 -07:00
2015-05-31 18:06:28 -07:00
2017-05-02 11:14:53 +02:00
2017-03-15 19:27:46 -04:00