diff options
author | 2020-05-25 02:04:48 +0000 | |
---|---|---|
committer | 2020-05-25 02:04:48 +0000 | |
commit | 77b219e0ed44c82d1eade27be3a0a0910c0035b1 (patch) | |
tree | 20a7cd9e2dd67bb4bb49b9896b4bd7a9e1b0fb9a /sys/arch | |
parent | The dependencies were insufficient. (diff) | |
download | wireguard-openbsd-77b219e0ed44c82d1eade27be3a0a0910c0035b1.tar.xz wireguard-openbsd-77b219e0ed44c82d1eade27be3a0a0910c0035b1.zip |
Add support for write operations to diskstrategy().
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/alpha/stand/boot/disk.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/arch/alpha/stand/boot/disk.c b/sys/arch/alpha/stand/boot/disk.c index 6b1cbb79a55..70ef717602f 100644 --- a/sys/arch/alpha/stand/boot/disk.c +++ b/sys/arch/alpha/stand/boot/disk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: disk.c,v 1.17 2015/10/01 16:08:19 krw Exp $ */ +/* $OpenBSD: disk.c,v 1.18 2020/05/25 02:04:48 deraadt Exp $ */ /* $NetBSD: disk.c,v 1.6 1997/04/06 08:40:33 cgd Exp $ */ /* @@ -78,10 +78,14 @@ diskstrategy(void *devdata, int rw, daddr32_t bn, size_t reqcnt, void *addrvoid, sc = (struct disk_softc *)devdata; pp = &sc->sc_label.d_partitions[sc->sc_part]; - ret.bits = prom_read(sc->sc_fd, reqcnt, addr, bn + pp->p_offset); + if (rw == F_READ) + ret.bits = prom_read(sc->sc_fd, reqcnt, addr, bn + pp->p_offset); + else + ret.bits = prom_write(sc->sc_fd, reqcnt, addr, bn + pp->p_offset); if (ret.u.status) return (EIO); - *cnt = ret.u.retval; + if (cnt) + *cnt = ret.u.retval; return (0); } |