summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/isci/task.c
diff options
context:
space:
mode:
authorJeff Skirvin <jeffrey.d.skirvin@intel.com>2012-03-09 07:42:05 +0100
committerDan Williams <dan.j.williams@intel.com>2012-05-17 23:33:42 +0200
commit1db79b3e784bffe7e00f9462a5c3441746e48632 (patch)
treefbe817512475d81423cbecb861a95e770aac5a70 /drivers/scsi/isci/task.c
parentisci: Wait for RNC resumption before leaving the abort path. (diff)
downloadlinux-1db79b3e784bffe7e00f9462a5c3441746e48632.tar.xz
linux-1db79b3e784bffe7e00f9462a5c3441746e48632.zip
isci: Directly control IREQ_ABORT_PATH_ACTIVE when completing TMFs.
TMF requests, unlike normal I/O requests, need to handle I/O management conditions in the completion function because TMFs are not handled in the completion tasklet. Signed-off-by: Jeff Skirvin <jeffrey.d.skirvin@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/scsi/isci/task.c')
-rw-r--r--drivers/scsi/isci/task.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/isci/task.c b/drivers/scsi/isci/task.c
index e798c6ae9592..084f8f73fade 100644
--- a/drivers/scsi/isci/task.c
+++ b/drivers/scsi/isci/task.c
@@ -719,6 +719,9 @@ isci_task_request_complete(struct isci_host *ihost,
*/
set_bit(IREQ_TERMINATED, &ireq->flags);
+ if (test_and_clear_bit(IREQ_ABORT_PATH_ACTIVE, &ireq->flags))
+ wake_up_all(&ihost->eventq);
+
if (!test_bit(IREQ_NO_AUTO_FREE_TAG, &ireq->flags))
isci_free_tag(ihost, ireq->io_tag);