OSDN Git Service

[SCSI] libsas: poll for ata device readiness after reset
authorDan Williams <dan.j.williams@intel.com>
Fri, 18 Nov 2011 01:59:54 +0000 (17:59 -0800)
committerJames Bottomley <JBottomley@Parallels.com>
Wed, 29 Feb 2012 18:49:36 +0000 (12:49 -0600)
commit36a399473902a57218dc493c5a814708a56b73ab
treee64a9f136bbacaded9fdd3d3d39c342953d9be34
parent50824d6c5657ce340e3911171865a8d99fdd8eba
[SCSI] libsas: poll for ata device readiness after reset

Use ata_wait_after_reset() to poll for link recovery after a reset.
This combined with sas_ha->eh_mutex prevents expander rediscovery from
probing phys in an intermediate state.  Local discovery does not have a
mechanism to filter link status changes during this timeout, so it
remains the responsibility of lldds to prevent premature port teardown.
Although once all lldd's support ->lldd_ata_check_ready() that could be
used as a gate to local port teardown.

The signature fis is re-transmitted when the link comes back so we
should be revalidating the ata device class, but that is left to a future
patch.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/libsas/sas_ata.c
drivers/scsi/libsas/sas_expander.c
drivers/scsi/libsas/sas_internal.h
include/scsi/libsas.h