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;

Reply via email to