isci: Directly control IREQ_ABORT_PATH_ACTIVE when completing TMFs.
authorJeff Skirvin <jeffrey.d.skirvin@intel.com>
Fri, 9 Mar 2012 06:42:05 +0000 (22:42 -0800)
committerDan Williams <dan.j.williams@intel.com>
Thu, 17 May 2012 21:33:42 +0000 (14:33 -0700)
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>
drivers/scsi/isci/task.c

index e798c6ae95927a0eacea8bc99ceb2495c437366a..084f8f73faded2135fcb87a66b19b0b4c03e1b4f 100644 (file)
@@ -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);