Browse Source

isci: Move the reset delay after the remote node resumption.

Delay after bringing up the RNC to allow for resumption latency.

Signed-off-by: Jeff Skirvin <jeffrey.d.skirvin@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Jeff Skirvin 14 years ago
parent
commit
ff717ab05f
1 changed files with 3 additions and 1 deletions
  1. 3 1
      drivers/scsi/isci/task.c

+ 3 - 1
drivers/scsi/isci/task.c

@@ -1433,15 +1433,17 @@ static int isci_reset_device(struct domain_device *dev, int hard_reset)
 	isci_device_clear_reset_pending(ihost, idev);
 
 	rc = sas_phy_reset(phy, hard_reset);
-	msleep(2000); /* just like mvsas */
 
 	/* Terminate in-progress I/O now. */
 	isci_remote_device_nuke_requests(ihost, idev);
 
+	/* Since all pending TCs have been cleaned, resume the RNC. */
 	spin_lock_irqsave(&ihost->scic_lock, flags);
 	status = scic_remote_device_reset_complete(&idev->sci);
 	spin_unlock_irqrestore(&ihost->scic_lock, flags);
 
+	msleep(2000); /* just like mvsas */
+
 	if (status != SCI_SUCCESS) {
 		dev_warn(&ihost->pdev->dev,
 			 "%s: scic_remote_device_reset_complete(%p) "