Skip to content

Commit

Permalink
isci: isci_request_cleanup_completed_loiterer checks task before task…
Browse files Browse the repository at this point in the history
…_done

In the condition where outstanding I/Os are being cleaned from the device
requests in process list, the cleanup function needs to check that the
request is actually a sas-task and not a task management function.

Signed-off-by: Jeff Skirvin <jeffrey.d.skirvin@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
  • Loading branch information
Jeff Skirvin authored and Dan Williams committed Jul 3, 2011
1 parent 5409bc3 commit 18d3d72
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions drivers/scsi/isci/task.c
Original file line number Diff line number Diff line change
Expand Up @@ -631,13 +631,16 @@ static void isci_request_cleanup_completed_loiterer(
struct isci_remote_device *isci_device,
struct isci_request *isci_request)
{
struct sas_task *task = isci_request_access_task(isci_request);
unsigned long flags;
struct sas_task *task;
unsigned long flags;

task = (isci_request->ttype == io_task)
? isci_request_access_task(isci_request)
: NULL;

dev_dbg(&isci_host->pdev->dev,
"%s: isci_device=%p, request=%p, task=%p\n",
__func__, isci_device, isci_request,
isci_request->ttype_ptr.io_task_ptr);
__func__, isci_device, isci_request, task);

spin_lock_irqsave(&isci_host->scic_lock, flags);
list_del_init(&isci_request->dev_node);
Expand Down

0 comments on commit 18d3d72

Please sign in to comment.