Module Name:    src
Committed By:   nat
Date:           Tue Oct 29 15:58:14 UTC 2024

Modified Files:
        src/sys/dev/ic: ncr5380sbc.c

Log Message:
A simpler fix for handling aborted requests.

>From riastradh@.


To generate a diff of this commit:
cvs rdiff -u -r1.73 -r1.74 src/sys/dev/ic/ncr5380sbc.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/ic/ncr5380sbc.c
diff -u src/sys/dev/ic/ncr5380sbc.c:1.73 src/sys/dev/ic/ncr5380sbc.c:1.74
--- src/sys/dev/ic/ncr5380sbc.c:1.73	Tue Oct 29 15:50:07 2024
+++ src/sys/dev/ic/ncr5380sbc.c	Tue Oct 29 15:58:14 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: ncr5380sbc.c,v 1.73 2024/10/29 15:50:07 nat Exp $	*/
+/*	$NetBSD: ncr5380sbc.c,v 1.74 2024/10/29 15:58:14 nat Exp $	*/
 
 /*
  * Copyright (c) 1995 David Jones, Gordon W. Ross
@@ -71,7 +71,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ncr5380sbc.c,v 1.73 2024/10/29 15:50:07 nat Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ncr5380sbc.c,v 1.74 2024/10/29 15:58:14 nat Exp $");
 
 #include "opt_ddb.h"
 
@@ -807,11 +807,18 @@ finish:
 	sr->sr_xs = NULL;
 	sc->sc_ncmds--;
 
+	const bool aborting = sc->sc_state & NCR_ABORTING;
+	if (aborting)
+		scsipi_channel_freeze(&sc->sc_channel, 1);
+
 	/* Tell common SCSI code it is done. */
 	scsipi_done(xs);
 
 	sc->sc_state = NCR_IDLE;
 	/* Now ncr5380_sched() may be called again. */
+
+	if (aborting)
+		scsipi_channel_thaw(&sc->sc_channel, 1);
 }
 
 

Reply via email to