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;