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)
 

Reply via email to