summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/isci/remote_device.h
diff options
context:
space:
mode:
authorJeff Skirvin <jeffrey.d.skirvin@intel.com>2012-03-08 22:42:04 -0800
committerDan Williams <dan.j.williams@intel.com>2012-05-17 14:33:42 -0700
commit0cce165e2814bc8c08ab229db5e17013971dced7 (patch)
tree48dde48b2f1af5fee99bd4439914abde40b62912 /drivers/scsi/isci/remote_device.h
parentd76689e46c8b2180c08575adc830cfda890ceb87 (diff)
downloadlinux-0cce165e2814bc8c08ab229db5e17013971dced7.tar.gz
linux-0cce165e2814bc8c08ab229db5e17013971dced7.tar.bz2
linux-0cce165e2814bc8c08ab229db5e17013971dced7.zip
isci: Wait for RNC resumption before leaving the abort path.
In the case of TMF execution, or device resets, wait for the RNC to fully resume before returning to the caller. This ensures that the remote device will not fail I/O requests while waiting for the RNC resumption to complete. 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/remote_device.h')
-rw-r--r--drivers/scsi/isci/remote_device.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/isci/remote_device.h b/drivers/scsi/isci/remote_device.h
index 53564c35cf24..ff34c4e8c1b1 100644
--- a/drivers/scsi/isci/remote_device.h
+++ b/drivers/scsi/isci/remote_device.h
@@ -87,6 +87,7 @@ struct isci_remote_device {
#define IDEV_IO_NCQERROR 5
#define IDEV_RNC_LLHANG_ENABLED 6
#define IDEV_ABORT_PATH_ACTIVE 7
+ #define IDEV_ABORT_PATH_RESUME_PENDING 8
unsigned long flags;
struct kref kref;
struct isci_port *isci_port;
@@ -101,6 +102,8 @@ struct isci_remote_device {
u32 started_request_count;
struct isci_request *working_request;
u32 not_ready_reason;
+ scics_sds_remote_node_context_callback abort_resume_cb;
+ void *abort_resume_cbparam;
};
#define ISCI_REMOTE_DEVICE_START_TIMEOUT 5000