summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJeff Skirvin <jeffrey.d.skirvin@intel.com>2011-03-04 14:06:50 -0800
committerDan Williams <dan.j.williams@intel.com>2011-07-03 03:55:30 -0700
commitcbb65c665b341e560b7a3b37cc616376031b3ee5 (patch)
tree2d533723af1cc8895ca95630131f47e9a027d82b /drivers
parentf0846c68912545d70da16b2fbedded37ea4394d8 (diff)
downloadop-kernel-dev-cbb65c665b341e560b7a3b37cc616376031b3ee5.zip
op-kernel-dev-cbb65c665b341e560b7a3b37cc616376031b3ee5.tar.gz
isci: Code review change for completion pointer cleanup.
Since the request structure contains a pointer to the completion to be used if the request is being aborted or terminated, there is no reason to pass the completion as a pointer to isci_terminate_request_core(). Signed-off-by: Jeff Skirvin <jeffrey.d.skirvin@intel.com> Signed-off-by: Jacek Danecki <Jacek.Danecki@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/isci/task.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/scsi/isci/task.c b/drivers/scsi/isci/task.c
index 3dc9ef3..5e80e84 100644
--- a/drivers/scsi/isci/task.c
+++ b/drivers/scsi/isci/task.c
@@ -677,10 +677,9 @@ static void isci_request_cleanup_completed_loiterer(
static void isci_terminate_request_core(
struct isci_host *isci_host,
struct isci_remote_device *isci_device,
- struct isci_request *isci_request,
- struct completion *request_completion)
+ struct isci_request *isci_request)
{
- enum sci_status status = SCI_SUCCESS;
+ enum sci_status status = SCI_SUCCESS;
bool was_terminated = false;
bool needs_cleanup_handling = false;
enum isci_request_status request_status;
@@ -720,6 +719,7 @@ static void isci_terminate_request_core(
*/
if (isci_request->sci_request_handle != NULL) {
was_terminated = true;
+ needs_cleanup_handling = true;
status = scic_controller_terminate_request(
isci_host->core_controller,
to_sci_dev(isci_device),
@@ -744,15 +744,15 @@ static void isci_terminate_request_core(
dev_dbg(&isci_host->pdev->dev,
"%s: before completion wait (%p)\n",
__func__,
- request_completion);
+ isci_request->io_request_completion);
/* Wait here for the request to complete. */
- wait_for_completion(request_completion);
+ wait_for_completion(isci_request->io_request_completion);
dev_dbg(&isci_host->pdev->dev,
"%s: after completion wait (%p)\n",
__func__,
- request_completion);
+ isci_request->io_request_completion);
}
if (needs_cleanup_handling)
@@ -760,7 +760,10 @@ static void isci_terminate_request_core(
isci_host, isci_device, isci_request
);
}
+ /* Clear the completion pointer from the request. */
+ isci_request->io_request_completion = NULL;
}
+
static void isci_terminate_request(
struct isci_host *isci_host,
struct isci_remote_device *isci_device,
@@ -800,7 +803,7 @@ static void isci_terminate_request(
* request and potentially calling up to libsas.
*/
isci_terminate_request_core(isci_host, isci_device,
- isci_request, &request_completion);
+ isci_request);
}
}
@@ -1268,8 +1271,7 @@ int isci_task_abort_task(struct sas_task *task)
/* Clean up the request on our side, and wait for the aborted I/O to
* complete.
*/
- isci_terminate_request_core(isci_host, isci_device, old_request,
- &aborted_io_completion);
+ isci_terminate_request_core(isci_host, isci_device, old_request);
}
/* Make sure we do not leave a reference to aborted_io_completion */
OpenPOWER on IntegriCloud