mirror of
https://github.com/torvalds/linux.git
synced 2024-10-31 09:11:49 +00:00
[SCSI] isci: No need to manage the pending reset bit on pending requests.
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>
This commit is contained in:
parent
3b34c169f8
commit
5412e25c55
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user