From 58d318453906210e3071217e8120cede3f854b56 Mon Sep 17 00:00:00 2001 From: mhitch Date: Mon, 8 Dec 2008 22:05:13 +0000 Subject: [PATCH] Deal with unrecognized SCSI message byte - restart script to clear the ACK. No longer hangs the driver when an unhandled message byte is seen. --- sys/arch/amiga/dev/siop.c | 6 +++--- sys/arch/amiga/dev/siop2.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/arch/amiga/dev/siop.c b/sys/arch/amiga/dev/siop.c index 6a8a7a8a4103..0dec5b4524a7 100644 --- a/sys/arch/amiga/dev/siop.c +++ b/sys/arch/amiga/dev/siop.c @@ -1,4 +1,4 @@ -/* $NetBSD: siop.c,v 1.58 2007/10/17 19:53:17 garbled Exp $ */ +/* $NetBSD: siop.c,v 1.59 2008/12/08 22:05:13 mhitch Exp $ */ /* * Copyright (c) 1990 The Regents of the University of California. @@ -70,7 +70,7 @@ #include "opt_ddb.h" #include -__KERNEL_RCSID(0, "$NetBSD: siop.c,v 1.58 2007/10/17 19:53:17 garbled Exp $"); +__KERNEL_RCSID(0, "$NetBSD: siop.c,v 1.59 2008/12/08 22:05:13 mhitch Exp $"); #include #include @@ -1352,7 +1352,7 @@ siop_checkintr(struct siop_softc *sc, u_char istat, u_char dstat, sc->sc_dev.dv_xname, rp->siop_sfbr, acb->msg[1], rp->siop_sbcl); /* what should be done here? */ DCIAS(kvtop(&acb->msg[1])); - rp->siop_dsp = sc->sc_scriptspa + Ent_switch; + rp->siop_dsp = sc->sc_scriptspa + Ent_clear_ack; return (0); } if (dstat & SIOP_DSTAT_SIR && rp->siop_dsps == 0xff0a) { diff --git a/sys/arch/amiga/dev/siop2.c b/sys/arch/amiga/dev/siop2.c index 3309be0de9c8..5497dce1d254 100644 --- a/sys/arch/amiga/dev/siop2.c +++ b/sys/arch/amiga/dev/siop2.c @@ -1,4 +1,4 @@ -/* $NetBSD: siop2.c,v 1.30 2007/10/17 19:53:17 garbled Exp $ */ +/* $NetBSD: siop2.c,v 1.31 2008/12/08 22:05:13 mhitch Exp $ */ /* * Copyright (c) 1990 The Regents of the University of California. @@ -70,7 +70,7 @@ #include "opt_ddb.h" #include -__KERNEL_RCSID(0, "$NetBSD: siop2.c,v 1.30 2007/10/17 19:53:17 garbled Exp $"); +__KERNEL_RCSID(0, "$NetBSD: siop2.c,v 1.31 2008/12/08 22:05:13 mhitch Exp $"); #include #include @@ -1474,7 +1474,7 @@ siopng_dump(sc); sc->sc_dev.dv_xname, rp->siop_sfbr, acb->msg[1], rp->siop_sbcl); /* what should be done here? */ DCIAS(kvtop(&acb->msg[1])); - rp->siop_dsp = sc->sc_scriptspa + Ent_switch; + rp->siop_dsp = sc->sc_scriptspa + Ent_clear_ack; return (0); } if (dstat & SIOP_DSTAT_SIR && rp->siop_dsps == 0xff0a) {