Module Name: src Committed By: martin Date: Tue Sep 13 07:01:08 UTC 2016
Modified Files: src/sys/compat/common: uipc_syscalls_43.c src/sys/compat/linux/common: linux_socket.c src/sys/compat/netbsd32: netbsd32_compat_43.c netbsd32_socket.c src/sys/compat/osf1: osf1_socket.c src/sys/compat/svr4: svr4_stream.c src/sys/kern: kern_ktrace.c uipc_syscalls.c src/sys/sys: ktrace.h socketvar.h Log Message: Make the ktrace record written by do_sys_sendmsg/do_sys_recvmsg overridable by the caller. Use this in compat_netbsd32 to log the 32bit version, so the 32bit userland kdump is happy. To generate a diff of this commit: cvs rdiff -u -r1.46 -r1.47 src/sys/compat/common/uipc_syscalls_43.c cvs rdiff -u -r1.132 -r1.133 src/sys/compat/linux/common/linux_socket.c cvs rdiff -u -r1.53 -r1.54 src/sys/compat/netbsd32/netbsd32_compat_43.c cvs rdiff -u -r1.43 -r1.44 src/sys/compat/netbsd32/netbsd32_socket.c cvs rdiff -u -r1.21 -r1.22 src/sys/compat/osf1/osf1_socket.c cvs rdiff -u -r1.86 -r1.87 src/sys/compat/svr4/svr4_stream.c cvs rdiff -u -r1.167 -r1.168 src/sys/kern/kern_ktrace.c cvs rdiff -u -r1.182 -r1.183 src/sys/kern/uipc_syscalls.c cvs rdiff -u -r1.63 -r1.64 src/sys/sys/ktrace.h cvs rdiff -u -r1.140 -r1.141 src/sys/sys/socketvar.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/common/uipc_syscalls_43.c diff -u src/sys/compat/common/uipc_syscalls_43.c:1.46 src/sys/compat/common/uipc_syscalls_43.c:1.47 --- src/sys/compat/common/uipc_syscalls_43.c:1.46 Sun Nov 9 17:48:07 2014 +++ src/sys/compat/common/uipc_syscalls_43.c Tue Sep 13 07:01:07 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_syscalls_43.c,v 1.46 2014/11/09 17:48:07 maxv Exp $ */ +/* $NetBSD: uipc_syscalls_43.c,v 1.47 2016/09/13 07:01:07 martin Exp $ */ /* * Copyright (c) 1982, 1986, 1989, 1990, 1993 @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uipc_syscalls_43.c,v 1.46 2014/11/09 17:48:07 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uipc_syscalls_43.c,v 1.47 2016/09/13 07:01:07 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -216,7 +216,7 @@ compat_43_sys_recvmsg(struct lwp *l, con msg.msg_iov = omsg.msg_iov; msg.msg_flags = (SCARG(uap, flags) & MSG_USERFLAGS) | MSG_IOVUSRSPACE; - error = do_sys_recvmsg(l, SCARG(uap, s), &msg, &from, + error = do_sys_recvmsg(l, SCARG(uap, s), &msg, NULL, 0, &from, omsg.msg_accrights != NULL ? &control : NULL, retval); if (error != 0) return error; @@ -361,7 +361,8 @@ compat_43_sys_sendmsg(struct lwp *l, con if (error != 0) goto bad; - return do_sys_sendmsg(l, SCARG(uap, s), &msg, SCARG(uap, flags), retval); + return do_sys_sendmsg(l, SCARG(uap, s), &msg, SCARG(uap, flags), + NULL, 0, retval); bad: if (nam != NULL) Index: src/sys/compat/linux/common/linux_socket.c diff -u src/sys/compat/linux/common/linux_socket.c:1.132 src/sys/compat/linux/common/linux_socket.c:1.133 --- src/sys/compat/linux/common/linux_socket.c:1.132 Mon Aug 1 03:15:30 2016 +++ src/sys/compat/linux/common/linux_socket.c Tue Sep 13 07:01:07 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_socket.c,v 1.132 2016/08/01 03:15:30 ozaki-r Exp $ */ +/* $NetBSD: linux_socket.c,v 1.133 2016/09/13 07:01:07 martin Exp $ */ /*- * Copyright (c) 1995, 1998, 2008 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_socket.c,v 1.132 2016/08/01 03:15:30 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_socket.c,v 1.133 2016/09/13 07:01:07 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_inet.h" @@ -428,7 +428,8 @@ linux_sys_sendto(struct lwp *l, const st aiov.iov_base = __UNCONST(SCARG(uap, msg)); aiov.iov_len = SCARG(uap, len); - return do_sys_sendmsg(l, SCARG(uap, s), &msg, bflags, retval); + return do_sys_sendmsg(l, SCARG(uap, s), &msg, bflags, + NULL, 0, retval); } static void @@ -617,7 +618,8 @@ linux_sys_sendmsg(struct lwp *l, const s } skipcmsg: - error = do_sys_sendmsg(l, SCARG(uap, s), &msg, bflags, retval); + error = do_sys_sendmsg(l, SCARG(uap, s), &msg, bflags, + NULL, 0, retval); /* Freed internally */ ctl_mbuf = NULL; @@ -779,7 +781,7 @@ linux_sys_recvmsg(struct lwp *l, const s } msg.msg_flags |= MSG_IOVUSRSPACE; - error = do_sys_recvmsg(l, SCARG(uap, s), &msg, &from, + error = do_sys_recvmsg(l, SCARG(uap, s), &msg, NULL, 0, &from, msg.msg_control != NULL ? &control : NULL, retval); if (error != 0) return error; Index: src/sys/compat/netbsd32/netbsd32_compat_43.c diff -u src/sys/compat/netbsd32/netbsd32_compat_43.c:1.53 src/sys/compat/netbsd32/netbsd32_compat_43.c:1.54 --- src/sys/compat/netbsd32/netbsd32_compat_43.c:1.53 Fri Apr 23 23:05:40 2010 +++ src/sys/compat/netbsd32/netbsd32_compat_43.c Tue Sep 13 07:01:07 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_43.c,v 1.53 2010/04/23 23:05:40 joerg Exp $ */ +/* $NetBSD: netbsd32_compat_43.c,v 1.54 2016/09/13 07:01:07 martin Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_43.c,v 1.53 2010/04/23 23:05:40 joerg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_43.c,v 1.54 2016/09/13 07:01:07 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_43.h" @@ -451,7 +451,7 @@ compat_43_netbsd32_orecvmsg(struct lwp * msg.msg_iov = iov; msg.msg_flags = SCARG(uap, flags) & MSG_USERFLAGS; - error = do_sys_recvmsg(l, SCARG(uap, s), &msg, &from, + error = do_sys_recvmsg(l, SCARG(uap, s), &msg, NULL, 0, &from, NETBSD32PTR64(omsg.msg_accrights) != NULL ? &control : NULL, retval); if (error != 0) @@ -547,7 +547,8 @@ compat_43_netbsd32_osendmsg(struct lwp * goto out; } - error = do_sys_sendmsg(l, SCARG(uap, s), &msg, SCARG(uap, flags), retval); + error = do_sys_sendmsg(l, SCARG(uap, s), &msg, SCARG(uap, flags), + &omsg, sizeof(omsg), retval); out: if (iov != aiov) Index: src/sys/compat/netbsd32/netbsd32_socket.c diff -u src/sys/compat/netbsd32/netbsd32_socket.c:1.43 src/sys/compat/netbsd32/netbsd32_socket.c:1.44 --- src/sys/compat/netbsd32/netbsd32_socket.c:1.43 Thu Sep 8 18:54:03 2016 +++ src/sys/compat/netbsd32/netbsd32_socket.c Tue Sep 13 07:01:07 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_socket.c,v 1.43 2016/09/08 18:54:03 martin Exp $ */ +/* $NetBSD: netbsd32_socket.c,v 1.44 2016/09/13 07:01:07 martin Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_socket.c,v 1.43 2016/09/08 18:54:03 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_socket.c,v 1.44 2016/09/13 07:01:07 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -193,8 +193,8 @@ netbsd32_recvmsg(struct lwp *l, const st msg.msg_iov = iov; msg.msg_iovlen = msg32.msg_iovlen; - error = do_sys_recvmsg(l, SCARG(uap, s), &msg, &from, - msg.msg_control != NULL ? &control : NULL, retval); + error = do_sys_recvmsg(l, SCARG(uap, s), &msg, &msg32, sizeof(msg32), + &from, msg.msg_control != NULL ? &control : NULL, retval); if (error != 0) goto done; @@ -367,7 +367,8 @@ netbsd32_sendmsg(struct lwp *l, const st goto out; msg.msg_iov = iov; - error = do_sys_sendmsg(l, SCARG(uap, s), &msg, SCARG(uap, flags), retval); + error = do_sys_sendmsg(l, SCARG(uap, s), &msg, SCARG(uap, flags), + &msg32, sizeof(msg32), retval); /* msg.msg_control freed by do_sys_sendmsg() */ if (iov != aiov) @@ -406,7 +407,8 @@ netbsd32_recvfrom(struct lwp *l, const s msg.msg_control = NULL; msg.msg_flags = SCARG(uap, flags) & MSG_USERFLAGS; - error = do_sys_recvmsg(l, SCARG(uap, s), &msg, &from, NULL, retval); + error = do_sys_recvmsg(l, SCARG(uap, s), &msg, NULL, ~0U, + &from, NULL, retval); if (error != 0) return error; @@ -439,5 +441,6 @@ netbsd32_sendto(struct lwp *l, const str aiov.iov_base = SCARG_P32(uap, buf); /* XXX kills const */ aiov.iov_len = SCARG(uap, len); msg.msg_flags = 0; - return do_sys_sendmsg(l, SCARG(uap, s), &msg, SCARG(uap, flags), retval); + return do_sys_sendmsg(l, SCARG(uap, s), &msg, SCARG(uap, flags), + NULL, ~0U, retval); } Index: src/sys/compat/osf1/osf1_socket.c diff -u src/sys/compat/osf1/osf1_socket.c:1.21 src/sys/compat/osf1/osf1_socket.c:1.22 --- src/sys/compat/osf1/osf1_socket.c:1.21 Sat Aug 8 12:02:35 2015 +++ src/sys/compat/osf1/osf1_socket.c Tue Sep 13 07:01:08 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: osf1_socket.c,v 1.21 2015/08/08 12:02:35 maxv Exp $ */ +/* $NetBSD: osf1_socket.c,v 1.22 2016/09/13 07:01:08 martin Exp $ */ /* * Copyright (c) 1999 Christopher G. Demetriou. All rights reserved. @@ -58,7 +58,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: osf1_socket.c,v 1.21 2015/08/08 12:02:35 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: osf1_socket.c,v 1.22 2016/09/13 07:01:08 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -130,7 +130,8 @@ osf1_sys_sendmsg_xopen(struct lwp *l, co bsd_iovec[i].iov_len = osf_iovec.iov_len; } - error = do_sys_sendmsg(l, SCARG(uap, s), &bsd_msghdr, flags, retval); + error = do_sys_sendmsg(l, SCARG(uap, s), &bsd_msghdr, flags, NULL, 0, + retval); err: kmem_free(bsd_iovec, iov_len * sizeof(struct iovec)); return error; Index: src/sys/compat/svr4/svr4_stream.c diff -u src/sys/compat/svr4/svr4_stream.c:1.86 src/sys/compat/svr4/svr4_stream.c:1.87 --- src/sys/compat/svr4/svr4_stream.c:1.86 Sat May 23 15:27:55 2015 +++ src/sys/compat/svr4/svr4_stream.c Tue Sep 13 07:01:08 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: svr4_stream.c,v 1.86 2015/05/23 15:27:55 rtr Exp $ */ +/* $NetBSD: svr4_stream.c,v 1.87 2016/09/13 07:01:08 martin Exp $ */ /*- * Copyright (c) 1994, 2008 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: svr4_stream.c,v 1.86 2015/05/23 15:27:55 rtr Exp $"); +__KERNEL_RCSID(0, "$NetBSD: svr4_stream.c,v 1.87 2016/09/13 07:01:08 martin Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -1502,7 +1502,7 @@ svr4_sys_putmsg(struct lwp *l, const str aiov.iov_base = NETBSD32PTR(dat.buf); aiov.iov_len = dat.len; error = do_sys_sendmsg(l, SCARG(uap, fd), &msg, - SCARG(uap, flags), retval); + SCARG(uap, flags), NULL, 0, retval); *retval = 0; return error; @@ -1734,8 +1734,8 @@ svr4_sys_getmsg(struct lwp *l, const str aiov.iov_len = dat.maxlen; msg.msg_flags = 0; - error = do_sys_recvmsg(l, SCARG(uap, fd), &msg, &name, NULL, - retval); + error = do_sys_recvmsg(l, SCARG(uap, fd), &msg, NULL, 0, + &name, NULL, retval); if (error) { DPRINTF(("getmsg: do_sys_recvmsg failed %d\n", error)); Index: src/sys/kern/kern_ktrace.c diff -u src/sys/kern/kern_ktrace.c:1.167 src/sys/kern/kern_ktrace.c:1.168 --- src/sys/kern/kern_ktrace.c:1.167 Thu Jul 7 06:55:43 2016 +++ src/sys/kern/kern_ktrace.c Tue Sep 13 07:01:08 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_ktrace.c,v 1.167 2016/07/07 06:55:43 msaitoh Exp $ */ +/* $NetBSD: kern_ktrace.c,v 1.168 2016/09/13 07:01:08 martin Exp $ */ /*- * Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_ktrace.c,v 1.167 2016/07/07 06:55:43 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_ktrace.c,v 1.168 2016/09/13 07:01:08 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -938,7 +938,7 @@ ktruser(const char *id, void *addr, size } void -ktr_kuser(const char *id, void *addr, size_t len) +ktr_kuser(const char *id, const void *addr, size_t len) { struct ktrace_entry *kte; struct ktr_user *ktp; Index: src/sys/kern/uipc_syscalls.c diff -u src/sys/kern/uipc_syscalls.c:1.182 src/sys/kern/uipc_syscalls.c:1.183 --- src/sys/kern/uipc_syscalls.c:1.182 Thu Jul 7 06:55:43 2016 +++ src/sys/kern/uipc_syscalls.c Tue Sep 13 07:01:08 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_syscalls.c,v 1.182 2016/07/07 06:55:43 msaitoh Exp $ */ +/* $NetBSD: uipc_syscalls.c,v 1.183 2016/09/13 07:01:08 martin Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uipc_syscalls.c,v 1.182 2016/07/07 06:55:43 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uipc_syscalls.c,v 1.183 2016/09/13 07:01:08 martin Exp $"); #ifdef _KERNEL_OPT #include "opt_pipe.h" @@ -505,7 +505,8 @@ sys_sendto(struct lwp *l, const struct s msg.msg_flags = 0; aiov.iov_base = __UNCONST(SCARG(uap, buf)); /* XXXUNCONST kills const */ aiov.iov_len = SCARG(uap, len); - return do_sys_sendmsg(l, SCARG(uap, s), &msg, SCARG(uap, flags), retval); + return do_sys_sendmsg(l, SCARG(uap, s), &msg, SCARG(uap, flags), + NULL, 0, retval); } int @@ -525,12 +526,14 @@ sys_sendmsg(struct lwp *l, const struct return (error); msg.msg_flags = MSG_IOVUSRSPACE; - return do_sys_sendmsg(l, SCARG(uap, s), &msg, SCARG(uap, flags), retval); + return do_sys_sendmsg(l, SCARG(uap, s), &msg, SCARG(uap, flags), + NULL, 0, retval); } static int do_sys_sendmsg_so(struct lwp *l, int s, struct socket *so, file_t *fp, - struct msghdr *mp, int flags, register_t *retsize) + struct msghdr *mp, int flags, const void *kthdr, size_t ktsize, + register_t *retsize) { struct iovec aiov[UIO_SMALLIOV], *iov = aiov, *tiov, *ktriov = NULL; @@ -540,7 +543,12 @@ do_sys_sendmsg_so(struct lwp *l, int s, size_t len, iovsz; int i, error; - ktrkuser("msghdr", mp, sizeof *mp); + if (__predict_false(kthdr == NULL && ktsize == 0)) { + kthdr = mp; + ktsize = sizeof(*mp); + } + if (__predict_true(kthdr != NULL)) + ktrkuser("msghdr", kthdr, ktsize); /* If the caller passed us stuff in mbufs, we must free them. */ to = (mp->msg_flags & MSG_NAMEMBUF) ? mp->msg_name : NULL; @@ -656,7 +664,7 @@ bad: int do_sys_sendmsg(struct lwp *l, int s, struct msghdr *mp, int flags, - register_t *retsize) + const void *kthdr, size_t ktsize, register_t *retsize) { int error; struct socket *so; @@ -670,7 +678,8 @@ do_sys_sendmsg(struct lwp *l, int s, str m_freem(mp->msg_control); return error; } - error = do_sys_sendmsg_so(l, s, so, fp, mp, flags, retsize); + error = do_sys_sendmsg_so(l, s, so, fp, mp, flags, kthdr, ktsize, + retsize); /* msg_name and msg_control freed */ fd_putfile(s); return error; @@ -701,7 +710,8 @@ sys_recvfrom(struct lwp *l, const struct msg.msg_control = NULL; msg.msg_flags = SCARG(uap, flags) & MSG_USERFLAGS; - error = do_sys_recvmsg(l, SCARG(uap, s), &msg, &from, NULL, retval); + error = do_sys_recvmsg(l, SCARG(uap, s), &msg, NULL, 0, &from, + NULL, retval); if (error != 0) return error; @@ -731,7 +741,7 @@ sys_recvmsg(struct lwp *l, const struct msg.msg_flags = (SCARG(uap, flags) & MSG_USERFLAGS) | MSG_IOVUSRSPACE; - error = do_sys_recvmsg(l, SCARG(uap, s), &msg, &from, + error = do_sys_recvmsg(l, SCARG(uap, s), &msg, NULL, 0, &from, msg.msg_control != NULL ? &control : NULL, retval); if (error != 0) return error; @@ -786,7 +796,8 @@ sys_sendmmsg(struct lwp *l, const struct msg->msg_flags = flags; - error = do_sys_sendmsg_so(l, s, so, fp, msg, flags, retval); + error = do_sys_sendmsg_so(l, s, so, fp, msg, flags, + &msg, sizeof(msg), retval); if (error) break; @@ -913,14 +924,20 @@ copyout_msg_control(struct lwp *l, struc static int do_sys_recvmsg_so(struct lwp *l, int s, struct socket *so, struct msghdr *mp, - struct mbuf **from, struct mbuf **control, register_t *retsize) + const void *ktrhdr, size_t ktsize, struct mbuf **from, + struct mbuf **control, register_t *retsize) { struct iovec aiov[UIO_SMALLIOV], *iov = aiov, *tiov, *ktriov = NULL; struct uio auio; size_t len, iovsz; int i, error; - ktrkuser("msghdr", mp, sizeof *mp); + if (__predict_false(ktrhdr == NULL && ktsize == 0)) { + ktrhdr = mp; + ktsize = sizeof *mp; + } + if (__predict_true(ktrhdr != NULL)) + ktrkuser("msghdr", ktrhdr, ktsize); *from = NULL; if (control != NULL) @@ -1002,15 +1019,17 @@ do_sys_recvmsg_so(struct lwp *l, int s, int -do_sys_recvmsg(struct lwp *l, int s, struct msghdr *mp, struct mbuf **from, - struct mbuf **control, register_t *retsize) +do_sys_recvmsg(struct lwp *l, int s, struct msghdr *mp, + const void *ktrhdr, size_t ktrsize, + struct mbuf **from, struct mbuf **control, register_t *retsize) { int error; struct socket *so; if ((error = fd_getsock(s, &so)) != 0) return error; - error = do_sys_recvmsg_so(l, s, so, mp, from, control, retsize); + error = do_sys_recvmsg_so(l, s, so, mp, ktrhdr, ktrsize, from, + control, retsize); fd_putfile(s); return error; } @@ -1064,7 +1083,7 @@ sys_recvmmsg(struct lwp *l, const struct from = NULL; } - error = do_sys_recvmsg_so(l, s, so, msg, &from, + error = do_sys_recvmsg_so(l, s, so, msg, NULL, 0, &from, msg->msg_control != NULL ? &control : NULL, retval); if (error) { if (error == EAGAIN && dg > 0) Index: src/sys/sys/ktrace.h diff -u src/sys/sys/ktrace.h:1.63 src/sys/sys/ktrace.h:1.64 --- src/sys/sys/ktrace.h:1.63 Sat Mar 19 17:04:12 2016 +++ src/sys/sys/ktrace.h Tue Sep 13 07:01:08 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: ktrace.h,v 1.63 2016/03/19 17:04:12 dholland Exp $ */ +/* $NetBSD: ktrace.h,v 1.64 2016/09/13 07:01:08 martin Exp $ */ /* * Copyright (c) 1988, 1993 @@ -296,7 +296,7 @@ void ktr_namei2(const char *, size_t, co void ktr_psig(int, sig_t, const sigset_t *, const ksiginfo_t *); void ktr_syscall(register_t, const register_t [], int); void ktr_sysret(register_t, int, register_t *); -void ktr_kuser(const char *, void *, size_t); +void ktr_kuser(const char *, const void *, size_t); void ktr_mib(const int *a , u_int b); void ktr_execarg(const void *, size_t); void ktr_execenv(const void *, size_t); @@ -398,7 +398,7 @@ ktrsysret(register_t a, int b, register_ } static inline void -ktrkuser(const char *a, void *b, size_t c) +ktrkuser(const char *a, const void *b, size_t c) { if (__predict_false(ktrace_on)) ktr_kuser(a, b, c); Index: src/sys/sys/socketvar.h diff -u src/sys/sys/socketvar.h:1.140 src/sys/sys/socketvar.h:1.141 --- src/sys/sys/socketvar.h:1.140 Wed Jun 1 04:15:54 2016 +++ src/sys/sys/socketvar.h Tue Sep 13 07:01:08 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: socketvar.h,v 1.140 2016/06/01 04:15:54 pgoyette Exp $ */ +/* $NetBSD: socketvar.h,v 1.141 2016/09/13 07:01:08 martin Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -351,9 +351,11 @@ void free_control_mbuf(struct lwp *, str int do_sys_getpeername(int, struct sockaddr *); int do_sys_getsockname(int, struct sockaddr *); -int do_sys_sendmsg(struct lwp *, int, struct msghdr *, int, register_t *); -int do_sys_recvmsg(struct lwp *, int, struct msghdr *, struct mbuf **, - struct mbuf **, register_t *); +int do_sys_sendmsg(struct lwp *, int, struct msghdr *, int, + const void *, size_t, register_t *); +int do_sys_recvmsg(struct lwp *, int, struct msghdr *, + const void *, size_t, + struct mbuf **, struct mbuf **, register_t *); int do_sys_bind(struct lwp *, int, struct sockaddr *); int do_sys_connect(struct lwp *, int, struct sockaddr *);