diff options
author | Dan Williams <dan.j.williams@intel.com> | 2012-01-13 05:57:35 +0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-03-01 01:33:02 +0400 |
commit | 354cf82980e2449e71fdaa3c6f170357ebd65467 (patch) | |
tree | 8300579ebb51e19e503437d5c1f5ce2fd5186f18 /drivers/scsi/libsas/sas_discover.c | |
parent | a692b0eec5efae382dfa800e8b4b083f172921a7 (diff) | |
download | linux-354cf82980e2449e71fdaa3c6f170357ebd65467.tar.xz |
[SCSI] libsas: let libata recover links that fail to transmit initial sig-fis
libsas fails to discover all sata devices in the domain. If a device fails
negotiation and does not transmit a signature fis the link needs recovery.
libata already understands how to manage slow to come up links, so treat these
conditions as ata device attach events for the purposes of creating an
ata_port. This allows libata to manage retrying link bring up.
Rediscovery is modified to be careful about checking changes in dev_type. It
looks like libsas leaks old devices if the sas address changes, but that's a
fix for another patch.
Acked-by: Jack Wang <jack_wang@usish.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/libsas/sas_discover.c')
-rw-r--r-- | drivers/scsi/libsas/sas_discover.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/libsas/sas_discover.c b/drivers/scsi/libsas/sas_discover.c index c1ac99d25f5e..8bcfcaa7b2e1 100644 --- a/drivers/scsi/libsas/sas_discover.c +++ b/drivers/scsi/libsas/sas_discover.c @@ -48,6 +48,7 @@ void sas_init_dev(struct domain_device *dev) case SATA_DEV: case SATA_PM: case SATA_PM_PORT: + case SATA_PENDING: INIT_LIST_HEAD(&dev->sata_dev.children); break; default: |