Module Name: src Committed By: jdolecek Date: Mon Sep 24 21:15:39 UTC 2018
Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c netbsd32_ioctl.h Log Message: fix DIOCLWEDGES to at least not fail with ENOTTY due to struct size difference, but probably more needs to be done to work if any actual wedges are configured To generate a diff of this commit: cvs rdiff -u -r1.94 -r1.95 src/sys/compat/netbsd32/netbsd32_ioctl.c cvs rdiff -u -r1.62 -r1.63 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.94 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.95 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.94 Mon Sep 24 21:08:08 2018 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Mon Sep 24 21:15:39 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.94 2018/09/24 21:08:08 jdolecek Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.95 2018/09/24 21:15:39 jdolecek Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.94 2018/09/24 21:08:08 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.95 2018/09/24 21:15:39 jdolecek Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -552,7 +552,7 @@ netbsd32_to_dkwedge_list( struct dkwedge_list *p, u_long cmd) { - p->dkwl_buf = s32p->dkwl_buf; + p->dkwl_buf = NETBSD32PTR64(s32p->dkwl_buf); p->dkwl_bufsize = s32p->dkwl_bufsize; p->dkwl_nwedges = s32p->dkwl_nwedges; p->dkwl_ncopied = s32p->dkwl_ncopied; @@ -1017,7 +1017,7 @@ netbsd32_from_dkwedge_list( struct netbsd32_dkwedge_list *s32p, u_long cmd) { - s32p->dkwl_buf = p->dkwl_buf; + NETBSD32PTR32(s32p->dkwl_buf, p->dkwl_buf); s32p->dkwl_bufsize = p->dkwl_bufsize; s32p->dkwl_nwedges = p->dkwl_nwedges; s32p->dkwl_ncopied = p->dkwl_ncopied; Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.62 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.63 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.62 Mon Sep 24 21:08:08 2018 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Mon Sep 24 21:15:39 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.62 2018/09/24 21:08:08 jdolecek Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.63 2018/09/24 21:15:39 jdolecek Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -604,11 +604,11 @@ struct netbsd32_devrescanargs { /* From sys/disk.h, sys/dkio.h */ struct netbsd32_dkwedge_list { - void *dkwl_buf; /* storage for dkwedge_info array */ + netbsd32_voidp dkwl_buf; /* storage for dkwedge_info array */ netbsd32_size_t dkwl_bufsize; /* size of that buffer */ u_int dkwl_nwedges; /* total number of wedges */ u_int dkwl_ncopied; /* number actually copied */ -}; +} __packed; #define DIOCLWEDGES32 _IOWR('d', 124, struct netbsd32_dkwedge_list)