Module Name: src Committed By: nat Date: Mon Oct 28 14:42:06 UTC 2024
Modified Files: src/sys/dev/scsipi: scsipi_base.c Log Message: Allow medium errors to be retried. This was necessary for some variants of the BlueSCSI-v2. For these devices retrying upon receiving a medium error they would work. Addreses kern/58452. As posted to tech-kern: https://mail-index.netbsd.org/tech-kern/2024/08/02/msg029652.html Ok thorpej@. To generate a diff of this commit: cvs rdiff -u -r1.191 -r1.192 src/sys/dev/scsipi/scsipi_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/scsipi/scsipi_base.c diff -u src/sys/dev/scsipi/scsipi_base.c:1.191 src/sys/dev/scsipi/scsipi_base.c:1.192 --- src/sys/dev/scsipi/scsipi_base.c:1.191 Mon Oct 28 14:36:43 2024 +++ src/sys/dev/scsipi/scsipi_base.c Mon Oct 28 14:42:06 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: scsipi_base.c,v 1.191 2024/10/28 14:36:43 nat Exp $ */ +/* $NetBSD: scsipi_base.c,v 1.192 2024/10/28 14:42:06 nat Exp $ */ /*- * Copyright (c) 1998, 1999, 2000, 2002, 2003, 2004 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: scsipi_base.c,v 1.191 2024/10/28 14:36:43 nat Exp $"); +__KERNEL_RCSID(0, "$NetBSD: scsipi_base.c,v 1.192 2024/10/28 14:42:06 nat Exp $"); #ifdef _KERNEL_OPT #include "opt_scsi.h" @@ -1058,6 +1058,13 @@ scsipi_interpret_sense(struct scsipi_xfe case SKEY_VOLUME_OVERFLOW: error = ENOSPC; break; + case SKEY_MEDIUM_ERROR: + if (xs->xs_retries != 0) { + xs->xs_retries--; + error = ERESTART; + } else + error = EIO; + break; default: error = EIO; break;