diff options
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/i2o/iopsp.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/dev/i2o/iopsp.c b/sys/dev/i2o/iopsp.c index 7168b940170..c53d8e11b3e 100644 --- a/sys/dev/i2o/iopsp.c +++ b/sys/dev/i2o/iopsp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: iopsp.c,v 1.11 2007/10/04 19:32:03 gilles Exp $ */ +/* $OpenBSD: iopsp.c,v 1.12 2007/10/18 05:53:02 deraadt Exp $ */ /* $NetBSD$ */ /*- @@ -433,7 +433,9 @@ iopsp_scsi_cmd(xs) tid = IOPSP_TIDMAP(sc->sc_tidmap, link->target, link->lun); if (tid == IOPSP_TID_ABSENT || tid == IOPSP_TID_INUSE) { xs->error = XS_SELTIMEOUT; + s = splbio(); scsi_done(xs); + splx(s); return (COMPLETE); } @@ -451,7 +453,9 @@ iopsp_scsi_cmd(xs) } else xs->error = XS_NOERROR; + s = splbio(); scsi_done(xs); + splx(s); return (COMPLETE); } @@ -496,7 +500,9 @@ iopsp_scsi_cmd(xs) if (error) { xs->error = XS_DRIVER_STUFFUP; iop_msg_free(iop, im); + s = splbio(); scsi_done(xs); + splx(s); return (COMPLETE); } if ((xs->flags & SCSI_DATA_IN) == 0) @@ -517,7 +523,9 @@ iopsp_scsi_cmd(xs) iop_msg_unmap(iop, im); iop_msg_free(iop, im); xs->error = XS_DRIVER_STUFFUP; + s = splbio(); scsi_done(xs); + splx(s); return (COMPLETE); } |