mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
[SCSI] libata: reset once
Hotplug testing with libsas currently encounters a 55 second wait for link recovery to give up. In the case where the user trusts the response time of their devices permit the recovery attempts to be limited to one. Signed-off-by: Dan Williams <dan.j.williams@intel.com> Acked-by: Jeff Garzik <jgarzik@redhat.com> Acked-by: Tejun Heo <tj@kernel.org> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
d9875690d9
commit
ca6d43b051
@ -1350,6 +1350,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
* nohrst, nosrst, norst: suppress hard, soft
|
||||
and both resets.
|
||||
|
||||
* rstonce: only attempt one reset during
|
||||
hot-unplug link recovery
|
||||
|
||||
* dump_id: dump IDENTIFY data.
|
||||
|
||||
If there are multiple matching configurations changing
|
||||
|
@ -6387,6 +6387,7 @@ static int __init ata_parse_force_one(char **cur,
|
||||
{ "nohrst", .lflags = ATA_LFLAG_NO_HRST },
|
||||
{ "nosrst", .lflags = ATA_LFLAG_NO_SRST },
|
||||
{ "norst", .lflags = ATA_LFLAG_NO_HRST | ATA_LFLAG_NO_SRST },
|
||||
{ "rstonce", .lflags = ATA_LFLAG_RST_ONCE },
|
||||
};
|
||||
char *start = *cur, *p = *cur;
|
||||
char *id, *val, *endp;
|
||||
|
@ -2623,6 +2623,8 @@ int ata_eh_reset(struct ata_link *link, int classify,
|
||||
*/
|
||||
while (ata_eh_reset_timeouts[max_tries] != ULONG_MAX)
|
||||
max_tries++;
|
||||
if (link->flags & ATA_LFLAG_RST_ONCE)
|
||||
max_tries = 1;
|
||||
if (link->flags & ATA_LFLAG_NO_HRST)
|
||||
hardreset = NULL;
|
||||
if (link->flags & ATA_LFLAG_NO_SRST)
|
||||
|
@ -184,6 +184,7 @@ enum {
|
||||
ATA_LFLAG_DISABLED = (1 << 6), /* link is disabled */
|
||||
ATA_LFLAG_SW_ACTIVITY = (1 << 7), /* keep activity stats */
|
||||
ATA_LFLAG_NO_LPM = (1 << 8), /* disable LPM on this link */
|
||||
ATA_LFLAG_RST_ONCE = (1 << 9), /* limit recovery to one reset */
|
||||
|
||||
/* struct ata_port flags */
|
||||
ATA_FLAG_SLAVE_POSS = (1 << 0), /* host supports slave dev */
|
||||
|
Loading…
Reference in New Issue
Block a user