diff options
author | Otto Moerbeek <otto@cvs.openbsd.org> | 2007-10-18 20:28:27 +0000 |
---|---|---|
committer | Otto Moerbeek <otto@cvs.openbsd.org> | 2007-10-18 20:28:27 +0000 |
commit | 42fbd11838551396cdbdfa15bdc1c568b83b4823 (patch) | |
tree | 265045e0f1001e740cc70f778d04b62100220705 | |
parent | 4d3f8b77be103329c722bf0c1f8d5d6e7518a9a6 (diff) |
avoid splassert, caused by the fact that iha_main() is called
unprotected by iha_exec_scb(). With help and ok miod@
-rw-r--r-- | sys/dev/ic/iha.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/ic/iha.c b/sys/dev/ic/iha.c index 50d01b3fd12..fb04412ab47 100644 --- a/sys/dev/ic/iha.c +++ b/sys/dev/ic/iha.c @@ -1,4 +1,4 @@ -/* $OpenBSD: iha.c,v 1.26 2007/04/10 17:47:55 miod Exp $ */ +/* $OpenBSD: iha.c,v 1.27 2007/10/18 20:28:26 otto Exp $ */ /*------------------------------------------------------------------------- * * Device driver for the INI-9XXXU/UW or INIC-940/950 PCI SCSI Controller. @@ -2482,6 +2482,7 @@ iha_done_scb(sc, pScb) { struct scsi_sense_data *s1, *s2; struct scsi_xfer *xs = pScb->SCB_Xs; + int s; if (xs != NULL) { timeout_del(&xs->stimeout); @@ -2562,7 +2563,9 @@ iha_done_scb(sc, pScb) } xs->flags |= ITSDONE; + s = splbio(); scsi_done(xs); + splx(s); } iha_append_free_scb(sc, pScb); |