return status;
status = scic_sds_remote_node_context_start_io(&sci_dev->rnc, request);
- if (status != SCI_SUCCESS)
- return status;
-
- status = request->state_handlers->start_handler(request);
+ if (status == SCI_SUCCESS)
+ status = request->state_handlers->start_handler(request);
scic_sds_remote_device_start_request(sci_dev, request, status);
} else
status = scic_sds_remote_node_context_start_io(&sci_dev->rnc, sci_req);
if (status != SCI_SUCCESS)
- return status;
+ goto out;
status = scic_sds_request_start(sci_req);
if (status != SCI_SUCCESS)
- return status;
+ goto out;
sci_dev->working_request = sci_req;
sci_base_state_machine_change_state(&sci_dev->state_machine,
SCIC_SDS_SMP_REMOTE_DEVICE_READY_SUBSTATE_CMD);
+ out:
scic_sds_remote_device_start_request(sci_dev, sci_req, status);
return status;