diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2002-06-08 08:50:27 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2002-06-08 08:50:27 +0000 |
commit | 94d1681e1d4c04e4f4384d9e36f0ae6e74560409 (patch) | |
tree | 89608c8f0edccd88b05e452116284dc24c6d64d4 /sys | |
parent | 84eb493436172260ba7e053ca26252e495c4aa42 (diff) |
protect biodone with splbio
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/vax/mba/hp.c | 4 | ||||
-rw-r--r-- | sys/arch/vax/mscp/mscp_disk.c | 12 | ||||
-rw-r--r-- | sys/arch/vax/mscp/mscp_tape.c | 8 | ||||
-rw-r--r-- | sys/arch/vax/qbus/qd.c | 6 | ||||
-rw-r--r-- | sys/arch/vax/uba/ts.c | 5 | ||||
-rw-r--r-- | sys/arch/vax/vax/ctu.c | 4 | ||||
-rw-r--r-- | sys/arch/vax/vsa/hdc9224.c | 4 |
7 files changed, 36 insertions, 7 deletions
diff --git a/sys/arch/vax/mba/hp.c b/sys/arch/vax/mba/hp.c index 3d8b3f74d43..d395379dbbc 100644 --- a/sys/arch/vax/mba/hp.c +++ b/sys/arch/vax/mba/hp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: hp.c,v 1.11 2002/03/14 01:26:48 millert Exp $ */ +/* $OpenBSD: hp.c,v 1.12 2002/06/08 08:50:26 art Exp $ */ /* $NetBSD: hp.c,v 1.22 2000/02/12 16:09:33 ragge Exp $ */ /* * Copyright (c) 1996 Ludd, University of Lule}, Sweden. @@ -208,7 +208,9 @@ hpstrategy(bp) done: bp->b_resid = bp->b_bcount; + s = splbio(); biodone(bp); + splx(s); } /* diff --git a/sys/arch/vax/mscp/mscp_disk.c b/sys/arch/vax/mscp/mscp_disk.c index a4fdc8649f4..c2da8381392 100644 --- a/sys/arch/vax/mscp/mscp_disk.c +++ b/sys/arch/vax/mscp/mscp_disk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mscp_disk.c,v 1.10 2002/03/14 01:26:48 millert Exp $ */ +/* $OpenBSD: mscp_disk.c,v 1.11 2002/06/08 08:50:26 art Exp $ */ /* $NetBSD: mscp_disk.c,v 1.30 2001/11/13 07:38:28 lukem Exp $ */ /* * Copyright (c) 1996 Ludd, University of Lule}, Sweden. @@ -292,6 +292,8 @@ rastrategy(bp) { int unit; struct ra_softc *ra; + int s; + /* * Make sure this is a reasonable drive to use. */ @@ -332,7 +334,9 @@ rastrategy(bp) return; done: + s = splbio(); biodone(bp); + splx(s); } int @@ -699,6 +703,7 @@ rxstrategy(bp) { int unit; struct rx_softc *rx; + int s; /* * Make sure this is a reasonable drive to use. @@ -734,7 +739,9 @@ rxstrategy(bp) return; done: + s = splbio(); biodone(bp); + splx(s); } int @@ -869,8 +876,11 @@ rriodone(usc, bp) struct device *usc; struct buf *bp; { + int s; + s = splbio(); biodone(bp); + splx(s); } /* diff --git a/sys/arch/vax/mscp/mscp_tape.c b/sys/arch/vax/mscp/mscp_tape.c index 4b88d804d67..b905624d517 100644 --- a/sys/arch/vax/mscp/mscp_tape.c +++ b/sys/arch/vax/mscp/mscp_tape.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mscp_tape.c,v 1.7 2002/03/14 01:26:48 millert Exp $ */ +/* $OpenBSD: mscp_tape.c,v 1.8 2002/06/08 08:50:26 art Exp $ */ /* $NetBSD: mscp_tape.c,v 1.16 2001/11/13 07:38:28 lukem Exp $ */ /* * Copyright (c) 1996 Ludd, University of Lule}, Sweden. @@ -257,6 +257,7 @@ mtstrategy(bp) { int unit; struct mt_softc *mt; + int s; /* * Make sure this is a reasonable drive to use. @@ -273,7 +274,9 @@ mtstrategy(bp) bad: bp->b_flags |= B_ERROR; + s = splbio(); biodone(bp); + splx(s); } int @@ -299,8 +302,11 @@ mtiodone(usc, bp) struct device *usc; struct buf *bp; { + int s; + s = splbio(); biodone(bp); + splx(s); } /* diff --git a/sys/arch/vax/qbus/qd.c b/sys/arch/vax/qbus/qd.c index 993c8332674..4c1b8059e8c 100644 --- a/sys/arch/vax/qbus/qd.c +++ b/sys/arch/vax/qbus/qd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: qd.c,v 1.3 2002/03/14 01:26:48 millert Exp $ */ +/* $OpenBSD: qd.c,v 1.4 2002/06/08 08:50:26 art Exp $ */ /* $NetBSD: qd.c,v 1.17 2000/01/24 02:40:29 matt Exp $ */ /*- @@ -1697,7 +1697,9 @@ panic("qd_strategy"); ubarelse(uh, &QBAreg); #endif if (!(dga->csr & DMA_ERR)) { + s = splbio(); biodone(bp); + splx(s); return; } @@ -1718,7 +1720,9 @@ panic("qd_strategy"); DMA_SETIGNORE(DMAheader[unit]); dga->csr |= DMA_IE; } + s = splbio(); biodone(bp); + splx(s); } /* qd_strategy */ diff --git a/sys/arch/vax/uba/ts.c b/sys/arch/vax/uba/ts.c index 476ec7f3408..fe937d5a61a 100644 --- a/sys/arch/vax/uba/ts.c +++ b/sys/arch/vax/uba/ts.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ts.c,v 1.9 2002/05/23 15:31:57 art Exp $ */ +/* $OpenBSD: ts.c,v 1.10 2002/06/08 08:50:26 art Exp $ */ /* $NetBSD: ts.c,v 1.11 1997/01/11 11:34:43 ragge Exp $ */ /*- @@ -428,6 +428,7 @@ tsstart (sc, bp) volatile int i, itmp; int ioctl; int cmd; + int s; if ((dp = ts_wtab[ctlr]) != NULL) { /* @@ -439,7 +440,9 @@ tsstart (sc, bp) /* bertram: ubarelse ??? */ ts_wtab[ctlr] = NULL; dp->b_flags |= B_ERROR; + s = splbio(); biodone (dp); + splx(s); if (tsreg->tssr & TS_SC) { /* Special Condition; Error */ log (TS_PRI, "%s: tssr 0x%x, state %d\n", diff --git a/sys/arch/vax/vax/ctu.c b/sys/arch/vax/vax/ctu.c index 1b558eed1f7..215730bd874 100644 --- a/sys/arch/vax/vax/ctu.c +++ b/sys/arch/vax/vax/ctu.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ctu.c,v 1.5 2002/03/14 01:26:48 millert Exp $ */ +/* $OpenBSD: ctu.c,v 1.6 2002/06/08 08:50:26 art Exp $ */ /* $NetBSD: ctu.c,v 1.10 2000/03/23 06:46:44 thorpej Exp $ */ /* * Copyright (c) 1996 Ludd, University of Lule}, Sweden. @@ -181,7 +181,9 @@ ctustrategy(bp) #endif if (bp->b_blkno >= 512) { + s = splbio(); biodone(bp); + splx(s); return; } bp->b_rawblkno = bp->b_blkno; diff --git a/sys/arch/vax/vsa/hdc9224.c b/sys/arch/vax/vsa/hdc9224.c index 1fbbaf07a6c..c6b9eb9f6b0 100644 --- a/sys/arch/vax/vsa/hdc9224.c +++ b/sys/arch/vax/vsa/hdc9224.c @@ -1,4 +1,4 @@ -/* $OpenBSD: hdc9224.c,v 1.8 2002/03/14 03:16:02 millert Exp $ */ +/* $OpenBSD: hdc9224.c,v 1.9 2002/06/08 08:50:26 art Exp $ */ /* $NetBSD: hdc9224.c,v 1.6 1997/03/15 16:32:22 ragge Exp $ */ /* * Copyright (c) 1996 Ludd, University of Lule}, Sweden. @@ -445,7 +445,9 @@ done: * Correctly set the buf to indicate a completed xfer */ bp->b_resid = 0; /* ??? bertram */ + s = splbio(); biodone(bp); + splx(s); } int |