summaryrefslogtreecommitdiff
path: root/sys/dev/ic
diff options
context:
space:
mode:
authorKenneth R Westerback <krw@cvs.openbsd.org>2007-11-06 03:09:31 +0000
committerKenneth R Westerback <krw@cvs.openbsd.org>2007-11-06 03:09:31 +0000
commit96138cf8fbeac744f3b9e3613fb731971f0a1cf8 (patch)
tree68a1c000bd5ae9e7472182e629a8d1154bddaf0e /sys/dev/ic
parent2499ae4d6f8e22c6fb9509842c2765109edf9276 (diff)
More scsi_done() at SPLBIO.
Diffstat (limited to 'sys/dev/ic')
-rw-r--r--sys/dev/ic/cac.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/ic/cac.c b/sys/dev/ic/cac.c
index 8082117d466..462679af7d2 100644
--- a/sys/dev/ic/cac.c
+++ b/sys/dev/ic/cac.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cac.c,v 1.24 2007/10/01 04:03:51 krw Exp $ */
+/* $OpenBSD: cac.c,v 1.25 2007/11/06 03:09:30 krw Exp $ */
/* $NetBSD: cac.c,v 1.15 2000/11/08 19:20:35 ad Exp $ */
/*
@@ -398,7 +398,7 @@ int
cac_ccb_poll(struct cac_softc *sc, struct cac_ccb *wantccb, int timo)
{
struct cac_ccb *ccb;
- int t = timo * 10;
+ int s, t = timo * 10;
do {
for (; t--; DELAY(100))
@@ -408,7 +408,9 @@ cac_ccb_poll(struct cac_softc *sc, struct cac_ccb *wantccb, int timo)
printf("%s: timeout\n", sc->sc_dv.dv_xname);
return (EBUSY);
}
+ s = splbio();
cac_ccb_done(sc, ccb);
+ splx(s);
} while (ccb != wantccb);
return (0);