summaryrefslogtreecommitdiffstats
path: root/sys/arch
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2020-05-25 02:04:48 +0000
committerderaadt <deraadt@openbsd.org>2020-05-25 02:04:48 +0000
commit77b219e0ed44c82d1eade27be3a0a0910c0035b1 (patch)
tree20a7cd9e2dd67bb4bb49b9896b4bd7a9e1b0fb9a /sys/arch
parentThe dependencies were insufficient. (diff)
downloadwireguard-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.c10
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);
}