aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2011-02-12 14:50:15 -0500
committerDan Williams <dan.j.williams@intel.com>2011-07-03 06:55:27 -0400
commitf7d36e1872c0d79ea9e31445c3b1b70602dbac4b (patch)
tree2d6a547b72b11a47ba3583414c0b559d7387b18f
parent27d42e3e794523c3cec02a17fb221ade00e98648 (diff)
isci: kill a callback cast
Callbacks are already type unsafe, obfuscating things further by casting the callback routine is less safe because now function argument number changes will not be caught by the compiler. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
-rw-r--r--drivers/scsi/isci/core/scic_sds_remote_device.c15
-rw-r--r--drivers/scsi/isci/core/scic_sds_remote_device.h3
-rw-r--r--drivers/scsi/isci/core/scic_sds_stp_remote_device.c1
3 files changed, 9 insertions, 10 deletions
diff --git a/drivers/scsi/isci/core/scic_sds_remote_device.c b/drivers/scsi/isci/core/scic_sds_remote_device.c
index 5fc1baaa56d0..643247f46a7e 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(
583 * serves as a callback when RNC gets resumed during a task management 583 * serves as a callback when RNC gets resumed during a task management
584 * sequence. none 584 * sequence. none
585 */ 585 */
586void scic_sds_remote_device_continue_request( 586void scic_sds_remote_device_continue_request(void *dev)
587 struct scic_sds_remote_device *this_device)
588{ 587{
588 struct scic_sds_remote_device *sci_dev = dev;
589 struct scic_sds_request *sci_req = sci_dev->working_request;
590
589 /* we need to check if this request is still valid to continue. */ 591 /* we need to check if this request is still valid to continue. */
590 if (this_device->working_request != NULL) { 592 if (sci_req) {
591 struct scic_sds_request *this_request = this_device->working_request; 593 struct scic_sds_controller *scic = sci_req->owning_controller;
592 struct scic_sds_controller *scic = this_request->owning_controller;
593 u32 state = scic->parent.state_machine.current_state_id; 594 u32 state = scic->parent.state_machine.current_state_id;
594 sci_base_controller_request_handler_t continue_io; 595 sci_base_controller_request_handler_t continue_io;
595 596
596 continue_io = scic_sds_controller_state_handler_table[state].base.continue_io; 597 continue_io = scic_sds_controller_state_handler_table[state].base.continue_io;
597 continue_io(&scic->parent, &this_request->target_device->parent, 598 continue_io(&scic->parent, &sci_req->target_device->parent,
598 &this_request->parent); 599 &sci_req->parent);
599 } 600 }
600} 601}
601 602
diff --git a/drivers/scsi/isci/core/scic_sds_remote_device.h b/drivers/scsi/isci/core/scic_sds_remote_device.h
index d91570f212c6..4841e4579643 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(
509 struct scic_sds_request *the_request, 509 struct scic_sds_request *the_request,
510 enum sci_status status); 510 enum sci_status status);
511 511
512void scic_sds_remote_device_continue_request( 512void scic_sds_remote_device_continue_request(void *sci_dev);
513 struct scic_sds_remote_device *this_device);
514 513
515enum sci_status scic_sds_remote_device_default_start_handler( 514enum sci_status scic_sds_remote_device_default_start_handler(
516 struct sci_base_remote_device *this_device); 515 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 0060804a2402..880e0e5932c0 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
188 188
189 scic_sds_remote_node_context_resume( 189 scic_sds_remote_node_context_resume(
190 this_device->rnc, 190 this_device->rnc,
191 (scics_sds_remote_node_context_callback)
192 scic_sds_remote_device_continue_request, 191 scic_sds_remote_device_continue_request,
193 this_device); 192 this_device);
194 } 193 }