/* 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.
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)) {
#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() -
*
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),
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;
*/
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 {
struct dev_to_host_fis rsp;
} stp;
};
-
};
static inline struct scic_sds_request *to_sci_req(struct scic_sds_stp_request *stp_req)