Commit f619fffb authored by Dan Williams's avatar Dan Williams

isci: fix remote_device start_io regressions

While reducing indentation commits 7ab92c9e "isci: make a
remote_node_context a proper member of a remote_device", 0879e6a6 "isci:
merge remote_device substates into a single state machine" broke
handling of situations where i/o's successfully started at the port
level need to terminated when the remote_node declines to start the i/o.
Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent 8f304c36
...@@ -1157,10 +1157,8 @@ static enum sci_status scic_sds_stp_remote_device_ready_ncq_substate_start_io_ha ...@@ -1157,10 +1157,8 @@ static enum sci_status scic_sds_stp_remote_device_ready_ncq_substate_start_io_ha
return status; return status;
status = scic_sds_remote_node_context_start_io(&sci_dev->rnc, request); status = scic_sds_remote_node_context_start_io(&sci_dev->rnc, request);
if (status != SCI_SUCCESS) if (status == SCI_SUCCESS)
return status; status = request->state_handlers->start_handler(request);
status = request->state_handlers->start_handler(request);
scic_sds_remote_device_start_request(sci_dev, request, status); scic_sds_remote_device_start_request(sci_dev, request, status);
} else } else
...@@ -1302,16 +1300,17 @@ static enum sci_status scic_sds_smp_remote_device_ready_idle_substate_start_io_h ...@@ -1302,16 +1300,17 @@ static enum sci_status scic_sds_smp_remote_device_ready_idle_substate_start_io_h
status = scic_sds_remote_node_context_start_io(&sci_dev->rnc, sci_req); status = scic_sds_remote_node_context_start_io(&sci_dev->rnc, sci_req);
if (status != SCI_SUCCESS) if (status != SCI_SUCCESS)
return status; goto out;
status = scic_sds_request_start(sci_req); status = scic_sds_request_start(sci_req);
if (status != SCI_SUCCESS) if (status != SCI_SUCCESS)
return status; goto out;
sci_dev->working_request = sci_req; sci_dev->working_request = sci_req;
sci_base_state_machine_change_state(&sci_dev->state_machine, sci_base_state_machine_change_state(&sci_dev->state_machine,
SCIC_SDS_SMP_REMOTE_DEVICE_READY_SUBSTATE_CMD); SCIC_SDS_SMP_REMOTE_DEVICE_READY_SUBSTATE_CMD);
out:
scic_sds_remote_device_start_request(sci_dev, sci_req, status); scic_sds_remote_device_start_request(sci_dev, sci_req, status);
return status; return status;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment