From c970ccd355ab53a21ce07ec517a27d47c0b64522 Mon Sep 17 00:00:00 2001 From: Jeff Skirvin Date: Thu, 8 Mar 2012 22:41:57 -0800 Subject: [PATCH] --- yaml --- r: 302563 b: refs/heads/master c: d6b2a0e4a066ea51322e16e66b25028cb0b4ca7e h: refs/heads/master i: 302561: 25d352f63c87ebb7ea8d751bbd3eb0e8cd8c25a6 302559: 75b6042caaec23bf2b2d28bd4f3f7933d551d86f v: v3 --- [refs] | 2 +- trunk/drivers/scsi/isci/init.c | 1 - trunk/drivers/scsi/isci/remote_device.c | 6 +----- trunk/drivers/scsi/isci/remote_device.h | 1 - trunk/drivers/scsi/isci/request.c | 12 ------------ trunk/drivers/scsi/isci/request.h | 2 -- trunk/drivers/scsi/isci/task.c | 4 ---- 7 files changed, 2 insertions(+), 26 deletions(-) diff --git a/[refs] b/[refs] index 93dae30c02fb..68e9d88e028e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 033751f6643adf616b85ac5eea7ce784bdde1b50 +refs/heads/master: d6b2a0e4a066ea51322e16e66b25028cb0b4ca7e diff --git a/trunk/drivers/scsi/isci/init.c b/trunk/drivers/scsi/isci/init.c index 39f12703b893..f2a8a3346307 100644 --- a/trunk/drivers/scsi/isci/init.c +++ b/trunk/drivers/scsi/isci/init.c @@ -569,7 +569,6 @@ static struct isci_host *isci_host_alloc(struct pci_dev *pdev, int id) for (i = 0; i < SCI_MAX_REMOTE_DEVICES; i++) { struct isci_remote_device *idev = &ihost->devices[i]; - INIT_LIST_HEAD(&idev->reqs_in_process); INIT_LIST_HEAD(&idev->node); } diff --git a/trunk/drivers/scsi/isci/remote_device.c b/trunk/drivers/scsi/isci/remote_device.c index b26ab05107dd..b14eff3c76d0 100644 --- a/trunk/drivers/scsi/isci/remote_device.c +++ b/trunk/drivers/scsi/isci/remote_device.c @@ -919,7 +919,7 @@ static void isci_remote_device_deconstruct(struct isci_host *ihost, struct isci_ * here should go through isci_remote_device_nuke_requests. * If we hit this condition, we will need a way to complete * io requests in process */ - BUG_ON(!list_empty(&idev->reqs_in_process)); + BUG_ON(idev->started_request_count > 0); sci_remote_device_destruct(idev); list_del_init(&idev->node); @@ -1345,10 +1345,6 @@ isci_remote_device_alloc(struct isci_host *ihost, struct isci_port *iport) dev_warn(&ihost->pdev->dev, "%s: failed\n", __func__); return NULL; } - - if (WARN_ONCE(!list_empty(&idev->reqs_in_process), "found requests in process\n")) - return NULL; - if (WARN_ONCE(!list_empty(&idev->node), "found non-idle remote device\n")) return NULL; diff --git a/trunk/drivers/scsi/isci/remote_device.h b/trunk/drivers/scsi/isci/remote_device.h index da43698e9eba..8b7817cf4352 100644 --- a/trunk/drivers/scsi/isci/remote_device.h +++ b/trunk/drivers/scsi/isci/remote_device.h @@ -90,7 +90,6 @@ struct isci_remote_device { struct isci_port *isci_port; struct domain_device *domain_dev; struct list_head node; - struct list_head reqs_in_process; struct sci_base_state_machine sm; u32 device_port_width; enum sas_linkrate connection_rate; diff --git a/trunk/drivers/scsi/isci/request.c b/trunk/drivers/scsi/isci/request.c index f4e80f31423c..662f36de8052 100644 --- a/trunk/drivers/scsi/isci/request.c +++ b/trunk/drivers/scsi/isci/request.c @@ -2956,9 +2956,6 @@ static void isci_request_io_request_complete(struct isci_host *ihost, /* Add to the completed list. */ list_add(&request->completed_node, &ihost->requests_to_complete); - /* Take the request off the device's pending request list. */ - list_del_init(&request->dev_node); - /* complete the io request to the core. */ sci_controller_complete_io(ihost, request->target_device, request); @@ -3412,7 +3409,6 @@ static struct isci_request *isci_request_from_tag(struct isci_host *ihost, u16 t ireq->flags = 0; ireq->num_sg_entries = 0; INIT_LIST_HEAD(&ireq->completed_node); - INIT_LIST_HEAD(&ireq->dev_node); return ireq; } @@ -3496,17 +3492,9 @@ int isci_request_execute(struct isci_host *ihost, struct isci_remote_device *ide spin_unlock_irqrestore(&ihost->scic_lock, flags); return status; } - /* Either I/O started OK, or the core has signaled that * the device needs a target reset. - * - * In either case, hold onto the I/O for later. - * - * Update it's status and add it to the list in the - * remote device object. */ - list_add(&ireq->dev_node, &idev->reqs_in_process); - if (status != SCI_SUCCESS) { /* The request did not really start in the * hardware, so clear the request handle diff --git a/trunk/drivers/scsi/isci/request.h b/trunk/drivers/scsi/isci/request.h index f3116a51235f..d12e97531da8 100644 --- a/trunk/drivers/scsi/isci/request.h +++ b/trunk/drivers/scsi/isci/request.h @@ -96,8 +96,6 @@ struct isci_request { struct isci_host *isci_host; /* For use in the requests_to_{complete|abort} lists: */ struct list_head completed_node; - /* For use in the reqs_in_process list: */ - struct list_head dev_node; dma_addr_t request_daddr; dma_addr_t zero_scatter_daddr; unsigned int num_sg_entries; diff --git a/trunk/drivers/scsi/isci/task.c b/trunk/drivers/scsi/isci/task.c index 9d8720d6266c..222fb0de4d59 100644 --- a/trunk/drivers/scsi/isci/task.c +++ b/trunk/drivers/scsi/isci/task.c @@ -317,9 +317,6 @@ static int isci_task_execute_tmf(struct isci_host *ihost, spin_unlock_irqrestore(&ihost->scic_lock, flags); goto err_tci; } - /* add the request to the remote device request list. */ - list_add(&ireq->dev_node, &idev->reqs_in_process); - /* The RNC must be unsuspended before the TMF can get a response. */ sci_remote_device_resume(idev, NULL, NULL); @@ -721,7 +718,6 @@ isci_task_request_complete(struct isci_host *ihost, set_bit(IREQ_TERMINATED, &ireq->flags); isci_free_tag(ihost, ireq->io_tag); - list_del_init(&ireq->dev_node); /* The task management part completes last. */ if (tmf_complete)