aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJeff Skirvin <jeffrey.d.skirvin@intel.com>2012-03-09 01:41:56 -0500
committerDan Williams <dan.j.williams@intel.com>2012-05-17 17:33:39 -0400
commit033751f6643adf616b85ac5eea7ce784bdde1b50 (patch)
tree77135e835a84ce987c87fe2623238eab195bfa80 /drivers
parentaa20d9343079b1f0bebd43dec82ecfd4af5e43da (diff)
isci: Only set IDEV_GONE in the device stop path.
Signed-off-by: Jeff Skirvin <jeffrey.d.skirvin@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/isci/port.c23
-rw-r--r--drivers/scsi/isci/remote_device.c3
2 files changed, 0 insertions, 26 deletions
diff --git a/drivers/scsi/isci/port.c b/drivers/scsi/isci/port.c
index f1866b0dc195..da0c4e1b9b30 100644
--- a/drivers/scsi/isci/port.c
+++ b/drivers/scsi/isci/port.c
@@ -240,32 +240,9 @@ static void isci_port_link_down(struct isci_host *isci_host,
240 struct isci_phy *isci_phy, 240 struct isci_phy *isci_phy,
241 struct isci_port *isci_port) 241 struct isci_port *isci_port)
242{ 242{
243 struct isci_remote_device *isci_device;
244
245 dev_dbg(&isci_host->pdev->dev, 243 dev_dbg(&isci_host->pdev->dev,
246 "%s: isci_port = %p\n", __func__, isci_port); 244 "%s: isci_port = %p\n", __func__, isci_port);
247 245
248 if (isci_port) {
249
250 /* check to see if this is the last phy on this port. */
251 if (isci_phy->sas_phy.port &&
252 isci_phy->sas_phy.port->num_phys == 1) {
253 /* change the state for all devices on this port. The
254 * next task sent to this device will be returned as
255 * SAS_TASK_UNDELIVERED, and the scsi mid layer will
256 * remove the target
257 */
258 list_for_each_entry(isci_device,
259 &isci_port->remote_dev_list,
260 node) {
261 dev_dbg(&isci_host->pdev->dev,
262 "%s: isci_device = %p\n",
263 __func__, isci_device);
264 set_bit(IDEV_GONE, &isci_device->flags);
265 }
266 }
267 }
268
269 /* Notify libsas of the borken link, this will trigger calls to our 246 /* Notify libsas of the borken link, this will trigger calls to our
270 * isci_port_deformed and isci_dev_gone functions. 247 * isci_port_deformed and isci_dev_gone functions.
271 */ 248 */
diff --git a/drivers/scsi/isci/remote_device.c b/drivers/scsi/isci/remote_device.c
index cf5d554e5056..b26ab05107dd 100644
--- a/drivers/scsi/isci/remote_device.c
+++ b/drivers/scsi/isci/remote_device.c
@@ -195,9 +195,6 @@ static void isci_remote_device_not_ready(struct isci_host *ihost,
195 "%s: isci_device = %p; reason = %d\n", __func__, idev, reason); 195 "%s: isci_device = %p; reason = %d\n", __func__, idev, reason);
196 196
197 switch (reason) { 197 switch (reason) {
198 case SCIC_REMOTE_DEVICE_NOT_READY_STOP_REQUESTED:
199 set_bit(IDEV_GONE, &idev->flags);
200 break;
201 case SCIC_REMOTE_DEVICE_NOT_READY_SATA_SDB_ERROR_FIS_RECEIVED: 198 case SCIC_REMOTE_DEVICE_NOT_READY_SATA_SDB_ERROR_FIS_RECEIVED:
202 set_bit(IDEV_IO_NCQERROR, &idev->flags); 199 set_bit(IDEV_IO_NCQERROR, &idev->flags);
203 200