diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/ic/cac.c | 6 |
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); |