]> git.baikalelectronics.ru Git - kernel.git/commit
[SCSI] libsas: use libata-eh-reset for sata rediscovery fis transmit failures
authorDan Williams <dan.j.williams@intel.com>
Thu, 1 Dec 2011 07:23:33 +0000 (23:23 -0800)
committerJames Bottomley <JBottomley@Parallels.com>
Sun, 19 Feb 2012 20:09:32 +0000 (14:09 -0600)
commitfa89a6c377d48fbcdc7b4d7901f761802d223c7f
tree1e53cb4a62519dda60babc240bbd3b7f69c5b1f4
parent722ec5ffa921fe48542869b9c3aa2c772b27f8af
[SCSI] libsas: use libata-eh-reset for sata rediscovery fis transmit failures

Since sata devices can take several seconds to recover the link on reset
the 0.5 seconds that libsas currently waits may not be enough.  Instead
if we are rediscovering a phy that was previously attached to a sata
device let libata handle any resets to encourage the device to transmit
the initial fis.

Once sas_ata_hard_reset() and lldds learn how to honor 'deadline' libsas
should stop encountering phys in an intermediate state, until then this
will loop until the fis is transmitted or ->attached_sas_addr gets
cleared, but in the more likely initial discovery case we keep existing
behavior.

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
include/scsi/sas_ata.h