summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-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);