Skip to content

Commit

Permalink
[SCSI] isci: No need to manage the pending reset bit on pending reque…
Browse files Browse the repository at this point in the history
…sts.

The lldd does not need to look at or manage the pending device
reset bit in pending sas_tasks.

Signed-off-by: Jeff Skirvin <jeffrey.d.skirvin@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
  • Loading branch information
Jeff Skirvin authored and James Bottomley committed Oct 31, 2011
1 parent 3b34c16 commit 5412e25
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 40 deletions.
35 changes: 0 additions & 35 deletions drivers/scsi/isci/remote_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -1438,38 +1438,3 @@ int isci_remote_device_found(struct domain_device *domain_dev)

return status == SCI_SUCCESS ? 0 : -ENODEV;
}

/**
* isci_device_clear_reset_pending() - This function will clear if any pending
* reset condition flags on the device.
* @request: This parameter is the isci_device object.
*
* true if there is a reset pending for the device.
*/
void isci_device_clear_reset_pending(struct isci_host *ihost, struct isci_remote_device *idev)
{
struct isci_request *isci_request;
struct isci_request *tmp_req;
unsigned long flags = 0;

dev_dbg(&ihost->pdev->dev, "%s: idev=%p, ihost=%p\n",
__func__, idev, ihost);

spin_lock_irqsave(&ihost->scic_lock, flags);

/* Clear reset pending on all pending requests. */
list_for_each_entry_safe(isci_request, tmp_req,
&idev->reqs_in_process, dev_node) {
dev_dbg(&ihost->pdev->dev, "%s: idev = %p request = %p\n",
__func__, idev, isci_request);

if (!test_bit(IREQ_TMF, &isci_request->flags)) {
struct sas_task *task = isci_request_access_task(isci_request);

spin_lock(&task->task_state_lock);
task->task_state_flags &= ~SAS_TASK_NEED_DEV_RESET;
spin_unlock(&task->task_state_lock);
}
}
spin_unlock_irqrestore(&ihost->scic_lock, flags);
}
3 changes: 1 addition & 2 deletions drivers/scsi/isci/remote_device.h
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,7 @@ void isci_remote_device_nuke_requests(struct isci_host *ihost,
struct isci_remote_device *idev);
void isci_remote_device_gone(struct domain_device *domain_dev);
int isci_remote_device_found(struct domain_device *domain_dev);
void isci_device_clear_reset_pending(struct isci_host *ihost,
struct isci_remote_device *idev);

/**
* sci_remote_device_stop() - This method will stop both transmission and
* reception of link activity for the supplied remote device. This method
Expand Down
3 changes: 0 additions & 3 deletions drivers/scsi/isci/task.c
Original file line number Diff line number Diff line change
Expand Up @@ -1570,9 +1570,6 @@ static int isci_reset_device(struct isci_host *ihost,
}
spin_unlock_irqrestore(&ihost->scic_lock, flags);

/* Make sure all pending requests are able to be fully terminated. */
isci_device_clear_reset_pending(ihost, idev);

/* If this is a device on an expander, disable BCN processing. */
if (!scsi_is_sas_phy_local(phy))
set_bit(IPORT_BCN_BLOCKED, &iport->flags);
Expand Down

0 comments on commit 5412e25

Please sign in to comment.