isci: kill device_sequence
authorDan Williams <dan.j.williams@intel.com>
Fri, 17 Jun 2011 20:34:43 +0000 (13:34 -0700)
committerDan Williams <dan.j.williams@intel.com>
Sun, 3 Jul 2011 11:04:51 +0000 (04:04 -0700)
Now that we have upleveled device reassignment protection to the
isci_remote_device reference count we no longer need this level of
self-defense.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/scsi/isci/host.h
drivers/scsi/isci/remote_device.c
drivers/scsi/isci/remote_device.h
drivers/scsi/isci/request.c
drivers/scsi/isci/request.h

index 94fd54dc9f01750fcd861ec80f8fccd9e11f7e37..a54397e1bf16230c18b410a4339a7d8fa50d941b 100644 (file)
@@ -187,15 +187,6 @@ struct scic_sds_controller {
        /* sequence number per tci */
        u8 io_request_sequence[SCI_MAX_IO_REQUESTS];
 
-       /**
-        * This field in the array of sequence values for the RNi.  These are used
-        * to control io request build to io request start operations.  The sequence
-        * value is recorded into an io request when it is built and is checked on
-        * the io request start operation to make sure that there was not a device
-        * hot plug between the build and start operation.
-        */
-       u8 remote_device_sequence[SCI_MAX_REMOTE_DEVICES];
-
        /**
         * This field is a pointer to the memory allocated by the driver for the task
         * context table.  This data is shared between the hardware and software.
index c2e5c05be0cbe1a0009604663c6e8e7d0bad09e8..9f45c2ba7307ceff7c3681a5a3f36a5735897d51 100644 (file)
@@ -887,8 +887,6 @@ static void scic_sds_remote_device_ready_state_enter(struct sci_base_state_machi
        struct isci_remote_device *idev = sci_dev_to_idev(sci_dev);
        struct domain_device *dev = idev->domain_dev;
 
-       scic->remote_device_sequence[sci_dev->rnc.remote_node_index]++;
-
        if (dev->dev_type == SATA_DEV || (dev->tproto & SAS_PROTOCOL_SATA)) {
                sci_change_state(&sci_dev->sm, SCI_STP_DEV_IDLE);
        } else if (dev_is_expander(dev)) {
index 33f011447312275d5b85be8f6e5aa479cb8290c5..cde595078f6d00ac9080b5587d6aa205961bb868 100644 (file)
@@ -410,17 +410,6 @@ static inline bool dev_is_expander(struct domain_device *dev)
 #define scic_sds_remote_device_get_port(sci_dev) \
        ((sci_dev)->owning_port)
 
-/**
- * scic_sds_remote_device_get_sequence() -
- *
- * This macro returns the remote device sequence value
- */
-#define scic_sds_remote_device_get_sequence(sci_dev) \
-       (\
-               scic_sds_remote_device_get_controller(sci_dev)-> \
-               remote_device_sequence[(sci_dev)->rnc.remote_node_index] \
-       )
-
 /**
  * scic_sds_remote_device_get_controller_peg() -
  *
index fd6314abeb0b53e499ccd605803d39ffad823d5c..ebe160c83f91b44af9a5c10b793be2ed9a38cd0a 100644 (file)
@@ -753,10 +753,6 @@ enum sci_status scic_sds_request_start(struct scic_sds_request *sci_req)
        struct scu_task_context *task_context;
        enum sci_base_request_states state;
 
-       if (sci_req->device_sequence !=
-           scic_sds_remote_device_get_sequence(sci_req->target_device))
-               return SCI_FAILURE;
-
        state = sci_req->sm.current_state_id;
        if (state != SCI_REQ_CONSTRUCTED) {
                dev_warn(scic_to_dev(scic),
@@ -3112,7 +3108,6 @@ scic_sds_general_request_construct(struct scic_sds_controller *scic,
        sci_req->target_device = sci_dev;
        sci_req->protocol = SCIC_NO_PROTOCOL;
        sci_req->saved_rx_frame_index = SCU_INVALID_FRAME_INDEX;
-       sci_req->device_sequence = scic_sds_remote_device_get_sequence(sci_dev);
 
        sci_req->sci_status   = SCI_SUCCESS;
        sci_req->scu_status   = 0;
index 9bb7c36257f30ed7f0086c95ac774028f24dc274..a91d1d6060ce2239d39cfc205df06f7fd2df052f 100644 (file)
@@ -231,14 +231,6 @@ struct scic_sds_request {
         */
        u32 saved_rx_frame_index;
 
-       /*
-        * This field in the recorded device sequence for the io request.
-        * This is recorded during the build operation and is compared in the
-        * start operation.  If the sequence is different then there was a
-        * change of devices from the build to start operations.
-        */
-       u8 device_sequence;
-
        union {
                struct {
                        union {
@@ -262,7 +254,6 @@ struct scic_sds_request {
                        struct dev_to_host_fis rsp;
                } stp;
        };
-
 };
 
 static inline struct scic_sds_request *to_sci_req(struct scic_sds_stp_request *stp_req)