aboutsummaryrefslogtreecommitdiff
path: root/include/scsi
diff options
context:
space:
mode:
authorDan Williams2011-11-30 23:23:33 -0800
committerJames Bottomley2012-02-19 14:09:32 -0600
commitb52df4174dff7e587f6fbfb21e3c2cb57109e5cf (patch)
tree1e53cb4a62519dda60babc240bbd3b7f69c5b1f4 /include/scsi
parent3a2cdf391b62919d3d2862cdce3d70b9a7a99673 (diff)
[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>
Diffstat (limited to 'include/scsi')
-rw-r--r--include/scsi/sas_ata.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/include/scsi/sas_ata.h b/include/scsi/sas_ata.h
index 9f7a23d1146d..c0bcd30eec56 100644
--- a/include/scsi/sas_ata.h
+++ b/include/scsi/sas_ata.h
@@ -44,7 +44,7 @@ void sas_ata_strategy_handler(struct Scsi_Host *shost);
int sas_ata_eh(struct Scsi_Host *shost, struct list_head *work_q,
struct list_head *done_q);
void sas_probe_sata(struct work_struct *work);
-
+void sas_ata_schedule_reset(struct domain_device *dev);
#else
@@ -75,6 +75,10 @@ static inline void sas_probe_sata(struct work_struct *work)
{
}
+static inline void sas_ata_schedule_reset(struct domain_device *dev)
+{
+}
+
#endif
#endif /* _SAS_ATA_H_ */