diff options
author | 2013-10-29 21:58:38 +0000 | |
---|---|---|
committer | 2013-10-29 21:58:38 +0000 | |
commit | f9df56969a636cbde28962c308a2fb31e28bf16e (patch) | |
tree | 046a06b0ff132b01b4f05cdbd50b16703f61cad2 /sys/dev/flash.c | |
parent | More cleanups: (diff) | |
download | wireguard-openbsd-f9df56969a636cbde28962c308a2fb31e28bf16e.tar.xz wireguard-openbsd-f9df56969a636cbde28962c308a2fb31e28bf16e.zip |
Don't add sectors to blocks. Use DL_SECTOBLK() to change DL_GETPOFFSET()
sector value to 512-byte-blocks before adding to b_blkno.
gcc tested on zaurus by matthieu@.
Diffstat (limited to 'sys/dev/flash.c')
-rw-r--r-- | sys/dev/flash.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/flash.c b/sys/dev/flash.c index 26a3428c083..422db0cc9dc 100644 --- a/sys/dev/flash.c +++ b/sys/dev/flash.c @@ -1,4 +1,4 @@ -/* $OpenBSD: flash.c,v 1.27 2013/10/20 10:11:17 krw Exp $ */ +/* $OpenBSD: flash.c,v 1.28 2013/10/29 21:58:38 krw Exp $ */ /* * Copyright (c) 2005 Uwe Stuehler <uwe@openbsd.org> @@ -881,12 +881,15 @@ flashstart(struct flash_softc *sc) void _flashstart(struct flash_softc *sc, struct buf *bp) { + struct disklabel *lp; int part; daddr_t offset; long pgno; part = flashpart(bp->b_dev); - offset = DL_GETPOFFSET(&sc->sc_dk.dk_label->d_partitions[part]) + + + lp = sc->sc_dk.dk_label; + offset = DL_SECTOBLK(lp, DL_GETPOFFSET(&lp->d_partitions[part])) + bp->b_blkno; pgno = offset / (sc->sc_flashdev->pagesize / DEV_BSIZE); |