diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/octeon/dev/amdcf.c | 4 | ||||
-rw-r--r-- | sys/arch/octeon/dev/octcf.c | 4 | ||||
-rw-r--r-- | sys/arch/sparc64/dev/fd.c | 10 | ||||
-rw-r--r-- | sys/dev/ata/wd.c | 6 | ||||
-rw-r--r-- | sys/dev/flash.c | 4 | ||||
-rw-r--r-- | sys/dev/isa/fd.c | 6 | ||||
-rw-r--r-- | sys/kern/subr_disk.c | 7 | ||||
-rw-r--r-- | sys/scsi/cd.c | 6 | ||||
-rw-r--r-- | sys/scsi/sd.c | 6 | ||||
-rw-r--r-- | sys/sys/disk.h | 4 |
10 files changed, 29 insertions, 28 deletions
diff --git a/sys/arch/octeon/dev/amdcf.c b/sys/arch/octeon/dev/amdcf.c index e846914f9ee..d5609781c20 100644 --- a/sys/arch/octeon/dev/amdcf.c +++ b/sys/arch/octeon/dev/amdcf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: amdcf.c,v 1.2 2016/01/20 17:23:58 stefan Exp $ */ +/* $OpenBSD: amdcf.c,v 1.3 2017/05/04 22:47:27 deraadt Exp $ */ /* * Copyright (c) 2007, Juniper Networks, Inc. @@ -672,7 +672,7 @@ amdcfdone(void *arg) bp->b_flags |= B_ERROR; disk_unbusy(&sc->sc_dk, (bp->b_bcount - bp->b_resid), - (bp->b_flags & B_READ)); + bp->b_blkno, (bp->b_flags & B_READ)); biodone(bp); } diff --git a/sys/arch/octeon/dev/octcf.c b/sys/arch/octeon/dev/octcf.c index 79c29fcf944..42beab06c46 100644 --- a/sys/arch/octeon/dev/octcf.c +++ b/sys/arch/octeon/dev/octcf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: octcf.c,v 1.28 2016/01/20 17:23:58 stefan Exp $ */ +/* $OpenBSD: octcf.c,v 1.29 2017/05/04 22:47:27 deraadt Exp $ */ /* $NetBSD: wd.c,v 1.193 1999/02/28 17:15:27 explorer Exp $ */ /* @@ -390,7 +390,7 @@ octcfdone(void *arg) bp->b_flags |= B_ERROR; disk_unbusy(&wd->sc_dk, (bp->b_bcount - bp->b_resid), - (bp->b_flags & B_READ)); + bp->b_blkno, (bp->b_flags & B_READ)); biodone(bp); } diff --git a/sys/arch/sparc64/dev/fd.c b/sys/arch/sparc64/dev/fd.c index 8c48b4ee12d..17a28a955fe 100644 --- a/sys/arch/sparc64/dev/fd.c +++ b/sys/arch/sparc64/dev/fd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: fd.c,v 1.47 2017/04/30 16:45:45 mpi Exp $ */ +/* $OpenBSD: fd.c,v 1.48 2017/05/04 22:47:27 deraadt Exp $ */ /* $NetBSD: fd.c,v 1.112 2003/08/07 16:29:35 agc Exp $ */ /*- @@ -1420,7 +1420,7 @@ loop: case DSKCHGWAIT: timeout_del(&fdc->fdctimeout_to); - disk_unbusy(&fd->sc_dk, 0, 0); + disk_unbusy(&fd->sc_dk, 0, 0, 0); if (fdc->sc_nstat != 2 || (st0 & 0xf8) != 0x20 || cyl != 1 * fd->sc_type->step) { fdcstatus(fdc, "dskchg seek failed"); @@ -1525,7 +1525,7 @@ loop: /*FALLTHROUGH*/ case SEEKCOMPLETE: /* no data on seek */ - disk_unbusy(&fd->sc_dk, 0, 0); + disk_unbusy(&fd->sc_dk, 0, 0, 0); /* Make sure seek really happened. */ if (fdc->sc_nstat != 2 || (st0 & 0xf8) != 0x20 || @@ -1570,7 +1570,7 @@ loop: case IOCLEANUPWAIT: /* IO FAILED, cleanup succeeded */ timeout_del(&fdc->fdctimeout_to); disk_unbusy(&fd->sc_dk, (bp->b_bcount - bp->b_resid), - (bp->b_flags & B_READ)); + bp->b_blkno, (bp->b_flags & B_READ)); fdcretry(fdc); goto loop; @@ -1578,7 +1578,7 @@ loop: timeout_del(&fdc->fdctimeout_to); disk_unbusy(&fd->sc_dk, (bp->b_bcount - bp->b_resid), - (bp->b_flags & B_READ)); + bp->b_blkno, (bp->b_flags & B_READ)); if (fdc->sc_nstat != 7 || st1 != 0 || ((st0 & 0xf8) != 0 && diff --git a/sys/dev/ata/wd.c b/sys/dev/ata/wd.c index 5e2461feb3a..cd168223672 100644 --- a/sys/dev/ata/wd.c +++ b/sys/dev/ata/wd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: wd.c,v 1.120 2016/01/20 17:23:58 stefan Exp $ */ +/* $OpenBSD: wd.c,v 1.121 2017/05/04 22:47:27 deraadt Exp $ */ /* $NetBSD: wd.c,v 1.193 1999/02/28 17:15:27 explorer Exp $ */ /* @@ -568,7 +568,7 @@ noerror: if ((wd->sc_wdc_bio.flags & ATA_CORR) || wd->retries > 0) wd->sc_dev.dv_xname); } disk_unbusy(&wd->sc_dk, (bp->b_bcount - bp->b_resid), - (bp->b_flags & B_READ)); + bp->b_blkno, (bp->b_flags & B_READ)); biodone(bp); wd->openings++; wdstart(wd); @@ -589,7 +589,7 @@ wdrestart(void *v) return; s = splbio(); - disk_unbusy(&wd->sc_dk, 0, (bp->b_flags & B_READ)); + disk_unbusy(&wd->sc_dk, 0, 0, (bp->b_flags & B_READ)); __wdstart(v, bp); splx(s); } diff --git a/sys/dev/flash.c b/sys/dev/flash.c index c391fb83b47..e0069a5c130 100644 --- a/sys/dev/flash.c +++ b/sys/dev/flash.c @@ -1,4 +1,4 @@ -/* $OpenBSD: flash.c,v 1.31 2015/08/12 22:37:32 krw Exp $ */ +/* $OpenBSD: flash.c,v 1.32 2017/05/04 22:47:27 deraadt Exp $ */ /* * Copyright (c) 2005 Uwe Stuehler <uwe@openbsd.org> @@ -931,7 +931,7 @@ flashdone(void *v) /* Instrumentation. */ disk_unbusy(&sc->sc_dk, bp->b_bcount - bp->b_resid, - (bp->b_flags & B_READ) != 0); + bp->b_blkno, (bp->b_flags & B_READ) != 0); if (bp->b_error != 0) bp->b_flags |= B_ERROR; diff --git a/sys/dev/isa/fd.c b/sys/dev/isa/fd.c index b2b378b2846..3e16d054428 100644 --- a/sys/dev/isa/fd.c +++ b/sys/dev/isa/fd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: fd.c,v 1.103 2015/11/25 04:49:10 tedu Exp $ */ +/* $OpenBSD: fd.c,v 1.104 2017/05/04 22:47:27 deraadt Exp $ */ /* $NetBSD: fd.c,v 1.90 1996/05/12 23:12:03 mycroft Exp $ */ /*- @@ -811,7 +811,7 @@ loop: return 1; case SEEKCOMPLETE: - disk_unbusy(&fd->sc_dk, 0, 0); /* no data on seek */ + disk_unbusy(&fd->sc_dk, 0, 0, 0); /* no data on seek */ /* Make sure seek really happened. */ out_fdc(iot, ioh, NE7CMD_SENSEI); @@ -838,7 +838,7 @@ loop: timeout_del(&fd->fdtimeout_to); disk_unbusy(&fd->sc_dk, (bp->b_bcount - bp->b_resid), - (bp->b_flags & B_READ)); + fd->sc_blkno, (bp->b_flags & B_READ)); if (fdcresult(fdc) != 7 || (st0 & 0xf8) != 0) { isadma_abort(fdc->sc_drq); diff --git a/sys/kern/subr_disk.c b/sys/kern/subr_disk.c index 4d220feeae0..07783b57002 100644 --- a/sys/kern/subr_disk.c +++ b/sys/kern/subr_disk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: subr_disk.c,v 1.229 2017/04/20 14:13:00 visa Exp $ */ +/* $OpenBSD: subr_disk.c,v 1.230 2017/05/04 22:47:27 deraadt Exp $ */ /* $NetBSD: subr_disk.c,v 1.17 1996/03/16 23:17:08 christos Exp $ */ /* @@ -1245,7 +1245,7 @@ disk_busy(struct disk *diskp) * time, and reset the timestamp. */ void -disk_unbusy(struct disk *diskp, long bcount, int read) +disk_unbusy(struct disk *diskp, long bcount, daddr_t blkno, int read) { struct timeval dv_time, diff_time; @@ -1273,7 +1273,8 @@ disk_unbusy(struct disk *diskp, long bcount, int read) mtx_leave(&diskp->dk_mtx); - add_disk_randomness(bcount ^ diff_time.tv_usec); + add_disk_randomness(bcount ^ diff_time.tv_usec ^ + (blkno >> 32) ^ (blkno & 0xffffffff)); } int diff --git a/sys/scsi/cd.c b/sys/scsi/cd.c index 2f453795dea..f1c3927bc73 100644 --- a/sys/scsi/cd.c +++ b/sys/scsi/cd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cd.c,v 1.218 2016/03/12 15:16:04 krw Exp $ */ +/* $OpenBSD: cd.c,v 1.219 2017/05/04 22:47:27 deraadt Exp $ */ /* $NetBSD: cd.c,v 1.100 1997/04/02 02:29:30 mycroft Exp $ */ /* @@ -622,7 +622,7 @@ cd_buf_done(struct scsi_xfer *xs) case XS_NO_CCB: /* The adapter is busy, requeue the buf and try it later. */ - disk_unbusy(&sc->sc_dk, bp->b_bcount - xs->resid, + disk_unbusy(&sc->sc_dk, bp->b_bcount - xs->resid, bp->b_blkno, bp->b_flags & B_READ); bufq_requeue(&sc->sc_bufq, bp); scsi_xs_put(xs); @@ -667,7 +667,7 @@ retry: break; } - disk_unbusy(&sc->sc_dk, bp->b_bcount - xs->resid, + disk_unbusy(&sc->sc_dk, bp->b_bcount - xs->resid, bp->b_blkno, bp->b_flags & B_READ); s = splbio(); diff --git a/sys/scsi/sd.c b/sys/scsi/sd.c index 30fb36b2786..b964f803da3 100644 --- a/sys/scsi/sd.c +++ b/sys/scsi/sd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sd.c,v 1.269 2016/03/19 15:37:33 bluhm Exp $ */ +/* $OpenBSD: sd.c,v 1.270 2017/05/04 22:47:27 deraadt Exp $ */ /* $NetBSD: sd.c,v 1.111 1997/04/02 02:29:41 mycroft Exp $ */ /*- @@ -764,7 +764,7 @@ sd_buf_done(struct scsi_xfer *xs) case XS_NO_CCB: /* The adapter is busy, requeue the buf and try it later. */ - disk_unbusy(&sc->sc_dk, bp->b_bcount - xs->resid, + disk_unbusy(&sc->sc_dk, bp->b_bcount - xs->resid, bp->b_blkno, bp->b_flags & B_READ); bufq_requeue(&sc->sc_bufq, bp); scsi_xs_put(xs); @@ -812,7 +812,7 @@ retry: break; } - disk_unbusy(&sc->sc_dk, bp->b_bcount - xs->resid, + disk_unbusy(&sc->sc_dk, bp->b_bcount - xs->resid, bp->b_blkno, bp->b_flags & B_READ); s = splbio(); diff --git a/sys/sys/disk.h b/sys/sys/disk.h index 742a3f84d66..4dcd48839f0 100644 --- a/sys/sys/disk.h +++ b/sys/sys/disk.h @@ -1,4 +1,4 @@ -/* $OpenBSD: disk.h,v 1.35 2016/05/21 14:00:27 jsing Exp $ */ +/* $OpenBSD: disk.h,v 1.36 2017/05/04 22:47:27 deraadt Exp $ */ /* $NetBSD: disk.h,v 1.11 1996/04/28 20:22:50 thorpej Exp $ */ /* @@ -144,7 +144,7 @@ int disk_openpart(struct disk *, int, int, int); void disk_closepart(struct disk *, int, int); void disk_gone(int (*)(dev_t, int, int, struct proc *), int); void disk_busy(struct disk *); -void disk_unbusy(struct disk *, long, int); +void disk_unbusy(struct disk *, long, daddr_t, int); int disk_lock(struct disk *); void disk_lock_nointr(struct disk *); |