summaryrefslogtreecommitdiff
path: root/sys/compat/linux/common/linux_sysctl.c
diff options
context:
space:
mode:
authormanu <manu@NetBSD.org>2006-09-23 22:11:59 +0000
committermanu <manu@NetBSD.org>2006-09-23 22:11:59 +0000
commit63ac93df54cd459cfecfc28db459efb55f78bb02 (patch)
tree44f6dd4751a21004633a7f90aac7f59b4b53c5ee /sys/compat/linux/common/linux_sysctl.c
parentf5b68de4eb5c9449947b5e81ca1c6a2347fe9b55 (diff)
Add sysctl tracing to emulations.
While we are there, fix a bug in FreeBSD sysctl emulation: use copyin for moving data to the kernel
Diffstat (limited to 'sys/compat/linux/common/linux_sysctl.c')
-rw-r--r--sys/compat/linux/common/linux_sysctl.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/sys/compat/linux/common/linux_sysctl.c b/sys/compat/linux/common/linux_sysctl.c
index 5a8b7a20bce..ad26747c5cd 100644
--- a/sys/compat/linux/common/linux_sysctl.c
+++ b/sys/compat/linux/common/linux_sysctl.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_sysctl.c,v 1.19 2006/03/08 03:55:31 jonathan Exp $ */
+/* $NetBSD: linux_sysctl.c,v 1.20 2006/09/23 22:12:00 manu Exp $ */
/*-
* Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -41,7 +41,9 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_sysctl.c,v 1.19 2006/03/08 03:55:31 jonathan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_sysctl.c,v 1.20 2006/09/23 22:12:00 manu Exp $");
+
+#include "opt_ktrace.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -51,6 +53,9 @@ __KERNEL_RCSID(0, "$NetBSD: linux_sysctl.c,v 1.19 2006/03/08 03:55:31 jonathan E
#include <sys/sysctl.h>
#include <sys/sa.h>
#include <sys/syscallargs.h>
+#ifdef KTRACE
+#include <sys/ktrace.h>
+#endif
#include <compat/linux/common/linux_types.h>
#include <compat/linux/common/linux_signal.h>
@@ -149,6 +154,10 @@ linux_sys___sysctl(struct lwp *l, void *v, register_t *retval)
if (error)
return (error);
+#ifdef KTRACE
+ if (KTRPOINT(l->l_proc, KTR_MIB))
+ ktrmib(l, name, ls.nlen);
+#endif
/*
* wire old so that copyout() is less likely to fail?
*/