From f9df56969a636cbde28962c308a2fb31e28bf16e Mon Sep 17 00:00:00 2001 From: krw Date: Tue, 29 Oct 2013 21:58:38 +0000 Subject: 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@. --- sys/dev/flash.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'sys/dev/flash.c') 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 @@ -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); -- cgit v1.2.3-59-g8ed1b