mirror of https://gitee.com/openkylin/linux.git
isci: kill device_sequence
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>
This commit is contained in:
parent
f208826751
commit
ff60639dc9
|
@ -187,15 +187,6 @@ struct scic_sds_controller {
|
||||||
/* sequence number per tci */
|
/* sequence number per tci */
|
||||||
u8 io_request_sequence[SCI_MAX_IO_REQUESTS];
|
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
|
* 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.
|
* context table. This data is shared between the hardware and software.
|
||||||
|
|
|
@ -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 isci_remote_device *idev = sci_dev_to_idev(sci_dev);
|
||||||
struct domain_device *dev = idev->domain_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)) {
|
if (dev->dev_type == SATA_DEV || (dev->tproto & SAS_PROTOCOL_SATA)) {
|
||||||
sci_change_state(&sci_dev->sm, SCI_STP_DEV_IDLE);
|
sci_change_state(&sci_dev->sm, SCI_STP_DEV_IDLE);
|
||||||
} else if (dev_is_expander(dev)) {
|
} else if (dev_is_expander(dev)) {
|
||||||
|
|
|
@ -410,17 +410,6 @@ static inline bool dev_is_expander(struct domain_device *dev)
|
||||||
#define scic_sds_remote_device_get_port(sci_dev) \
|
#define scic_sds_remote_device_get_port(sci_dev) \
|
||||||
((sci_dev)->owning_port)
|
((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() -
|
* scic_sds_remote_device_get_controller_peg() -
|
||||||
*
|
*
|
||||||
|
|
|
@ -753,10 +753,6 @@ enum sci_status scic_sds_request_start(struct scic_sds_request *sci_req)
|
||||||
struct scu_task_context *task_context;
|
struct scu_task_context *task_context;
|
||||||
enum sci_base_request_states state;
|
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;
|
state = sci_req->sm.current_state_id;
|
||||||
if (state != SCI_REQ_CONSTRUCTED) {
|
if (state != SCI_REQ_CONSTRUCTED) {
|
||||||
dev_warn(scic_to_dev(scic),
|
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->target_device = sci_dev;
|
||||||
sci_req->protocol = SCIC_NO_PROTOCOL;
|
sci_req->protocol = SCIC_NO_PROTOCOL;
|
||||||
sci_req->saved_rx_frame_index = SCU_INVALID_FRAME_INDEX;
|
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->sci_status = SCI_SUCCESS;
|
||||||
sci_req->scu_status = 0;
|
sci_req->scu_status = 0;
|
||||||
|
|
|
@ -231,14 +231,6 @@ struct scic_sds_request {
|
||||||
*/
|
*/
|
||||||
u32 saved_rx_frame_index;
|
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 {
|
union {
|
||||||
struct {
|
struct {
|
||||||
union {
|
union {
|
||||||
|
@ -262,7 +254,6 @@ struct scic_sds_request {
|
||||||
struct dev_to_host_fis rsp;
|
struct dev_to_host_fis rsp;
|
||||||
} stp;
|
} stp;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline struct scic_sds_request *to_sci_req(struct scic_sds_stp_request *stp_req)
|
static inline struct scic_sds_request *to_sci_req(struct scic_sds_stp_request *stp_req)
|
||||||
|
|
Loading…
Reference in New Issue