diff --git a/drivers/scsi/isci/core/scic_sds_remote_device.c b/drivers/scsi/isci/core/scic_sds_remote_device.c index 5fc1baaa56d0373a7aae6b126a825fea785cf448..643247f46a7e953456f782831b86f400212805d8 100644 --- a/drivers/scsi/isci/core/scic_sds_remote_device.c +++ b/drivers/scsi/isci/core/scic_sds_remote_device.c @@ -583,19 +583,20 @@ void scic_sds_remote_device_start_request( * serves as a callback when RNC gets resumed during a task management * sequence. none */ -void scic_sds_remote_device_continue_request( - struct scic_sds_remote_device *this_device) +void scic_sds_remote_device_continue_request(void *dev) { + struct scic_sds_remote_device *sci_dev = dev; + struct scic_sds_request *sci_req = sci_dev->working_request; + /* we need to check if this request is still valid to continue. */ - if (this_device->working_request != NULL) { - struct scic_sds_request *this_request = this_device->working_request; - struct scic_sds_controller *scic = this_request->owning_controller; + if (sci_req) { + struct scic_sds_controller *scic = sci_req->owning_controller; u32 state = scic->parent.state_machine.current_state_id; sci_base_controller_request_handler_t continue_io; continue_io = scic_sds_controller_state_handler_table[state].base.continue_io; - continue_io(&scic->parent, &this_request->target_device->parent, - &this_request->parent); + continue_io(&scic->parent, &sci_req->target_device->parent, + &sci_req->parent); } } diff --git a/drivers/scsi/isci/core/scic_sds_remote_device.h b/drivers/scsi/isci/core/scic_sds_remote_device.h index d91570f212c6fd1f3c799b8bbecdb7d7d28b4967..4841e4579643801c42ec6d8301f778d3a3739f64 100644 --- a/drivers/scsi/isci/core/scic_sds_remote_device.h +++ b/drivers/scsi/isci/core/scic_sds_remote_device.h @@ -509,8 +509,7 @@ void scic_sds_remote_device_start_request( struct scic_sds_request *the_request, enum sci_status status); -void scic_sds_remote_device_continue_request( - struct scic_sds_remote_device *this_device); +void scic_sds_remote_device_continue_request(void *sci_dev); enum sci_status scic_sds_remote_device_default_start_handler( struct sci_base_remote_device *this_device); diff --git a/drivers/scsi/isci/core/scic_sds_stp_remote_device.c b/drivers/scsi/isci/core/scic_sds_stp_remote_device.c index 0060804a2402fd1e04900d97c5a2df7e83d6b559..880e0e5932c0b5fd64df079f65bf9ff2258d125b 100644 --- a/drivers/scsi/isci/core/scic_sds_stp_remote_device.c +++ b/drivers/scsi/isci/core/scic_sds_stp_remote_device.c @@ -188,7 +188,6 @@ static enum sci_status scic_sds_stp_remote_device_ready_substate_start_request_h scic_sds_remote_node_context_resume( this_device->rnc, - (scics_sds_remote_node_context_callback) scic_sds_remote_device_continue_request, this_device); }