Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ca6d43b0 authored by Dan Williams's avatar Dan Williams Committed by James Bottomley
Browse files

[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: default avatarDan Williams <dan.j.williams@intel.com>
Acked-by: default avatarJeff Garzik <jgarzik@redhat.com>
Acked-by: default avatarTejun Heo <tj@kernel.org>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent d9875690
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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;
+2 −0
Original line number Diff line number Diff line
@@ -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)
+1 −0
Original line number Diff line number Diff line
@@ -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 */