diff options
author | Swapnil Nagle <swapnil.nagle@purestorage.com> | 2015-07-14 16:00:43 -0400 |
---|---|---|
committer | Sasha Levin <sasha.levin@oracle.com> | 2016-02-23 01:13:40 -0500 |
commit | ea116368a3680fc4ea10196736adae2109f96301 (patch) | |
tree | 4d935749e0919ea30b051b0f9b6ee597f4620dc9 /drivers/ide | |
parent | f5fa85b4e599a45e6d056d44eb920eb42ed63849 (diff) |
qla2xxx: cleanup cmd in qla workqueue before processing TMR
[ Upstream commit 8b2f5ff3d05c2c48b722c3cc67b8226f1601042b ]
Since cmds go into qla_tgt_wq and TMRs don't, it's possible that TMR
like TASK_ABORT can be queued over the cmd for which it was meant.
To avoid this race, use a per-port list to keep track of cmds that
are enqueued to qla_tgt_wq but not yet processed. When a TMR arrives,
iterate through this list and remove any cmds that match the TMR.
This patch supports TASK_ABORT and LUN_RESET.
Cc: <stable@vger.kernel.org> # v3.18+
Signed-off-by: Swapnil Nagle <swapnil.nagle@purestorage.com>
Signed-off-by: Alexei Potashnik <alexei@purestorage.com>
Acked-by: Quinn Tran <quinn.tran@qlogic.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Diffstat (limited to 'drivers/ide')
0 files changed, 0 insertions, 0 deletions