diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2002-05-24 13:10:54 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2002-05-24 13:10:54 +0000 |
commit | 2d9bd9442f5fc77c2564c93b7dbe84ed4bc4c17c (patch) | |
tree | 761d51062770a57217f50d73f6a06db0c1628fca /sys/uvm/uvm_swap.c | |
parent | f49f20f7f07ad6f9bf167c0982e5a5a56b012ea2 (diff) |
Make sure that b_iodone handlers are called at splbio (and splassert(IPL_BIO) in all known callers, just to make sure).
Diffstat (limited to 'sys/uvm/uvm_swap.c')
-rw-r--r-- | sys/uvm/uvm_swap.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/sys/uvm/uvm_swap.c b/sys/uvm/uvm_swap.c index c5d0ff18a39..380090a2cbc 100644 --- a/sys/uvm/uvm_swap.c +++ b/sys/uvm/uvm_swap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: uvm_swap.c,v 1.52 2002/05/24 08:58:41 art Exp $ */ +/* $OpenBSD: uvm_swap.c,v 1.53 2002/05/24 13:10:53 art Exp $ */ /* $NetBSD: uvm_swap.c,v 1.40 2000/11/17 11:39:39 mrg Exp $ */ /* @@ -1506,7 +1506,7 @@ sw_reg_iodone(bp) struct vndxfer *vnx = vbp->vb_xfer; struct buf *pbp = vnx->vx_bp; /* parent buffer */ struct swapdev *sdp = vnx->vx_sdp; - int s, resid; + int resid; UVMHIST_FUNC("sw_reg_iodone"); UVMHIST_CALLED(pdhist); UVMHIST_LOG(pdhist, " vbp=%p vp=%p blkno=%x addr=%p", @@ -1514,11 +1514,8 @@ sw_reg_iodone(bp) UVMHIST_LOG(pdhist, " cnt=%lx resid=%lx", vbp->vb_buf.b_bcount, vbp->vb_buf.b_resid, 0, 0); - /* - * protect vbp at splbio and update. - */ + splassert(IPL_BIO); - s = splbio(); resid = vbp->vb_buf.b_bcount - vbp->vb_buf.b_resid; pbp->b_resid -= resid; vnx->vx_pending--; @@ -1570,7 +1567,6 @@ sw_reg_iodone(bp) */ sdp->swd_tab.b_active--; sw_reg_start(sdp); - splx(s); } |