From 6e2802a7fc246b53f919efbf1c011da2d0a4ff30 Mon Sep 17 00:00:00 2001
From: Jeff Skirvin <jeffrey.d.skirvin@intel.com>
Date: Tue, 8 Mar 2011 20:32:16 -0700
Subject: [PATCH] isci: All pending requests are terminated before stopping the
 device.

Make sure all pending I/O including any in the libsas error handler
process is cleaned-up.

Signed-off-by: Jeff Skirvin <jeffrey.d.skirvin@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
---
 drivers/scsi/isci/remote_device.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/scsi/isci/remote_device.c b/drivers/scsi/isci/remote_device.c
index 1dae2184b9e9..6fe6815e4b74 100644
--- a/drivers/scsi/isci/remote_device.c
+++ b/drivers/scsi/isci/remote_device.c
@@ -380,6 +380,10 @@ enum sci_status isci_remote_device_stop(struct isci_host *ihost, struct isci_rem
 		"%s: isci_device = %p\n", __func__, idev);
 
 	isci_remote_device_change_state(idev, isci_stopping);
+
+	/* Kill all outstanding requests. */
+	isci_remote_device_nuke_requests(idev);
+
 	set_bit(IDEV_STOP_PENDING, &idev->flags);
 
 	spin_lock_irqsave(&ihost->scic_lock, flags);
-- 
2.34.1