Module Name: src
Committed By: dsl
Date: Thu Jul 12 18:13:08 UTC 2012
Modified Files:
src/sys/arch/i386/i386: freebsd_syscall.c ibcs2_syscall.c
svr4_syscall.c
Log Message:
Fix previous - syscall_fancy() didn't contain the check for p_trace_anabled.
To generate a diff of this commit:
cvs rdiff -u -r1.38 -r1.39 src/sys/arch/i386/i386/freebsd_syscall.c
cvs rdiff -u -r1.47 -r1.48 src/sys/arch/i386/i386/ibcs2_syscall.c
cvs rdiff -u -r1.46 -r1.47 src/sys/arch/i386/i386/svr4_syscall.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/i386/i386/freebsd_syscall.c
diff -u src/sys/arch/i386/i386/freebsd_syscall.c:1.38 src/sys/arch/i386/i386/freebsd_syscall.c:1.39
--- src/sys/arch/i386/i386/freebsd_syscall.c:1.38 Thu Jul 12 17:26:42 2012
+++ src/sys/arch/i386/i386/freebsd_syscall.c Thu Jul 12 18:13:08 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: freebsd_syscall.c,v 1.38 2012/07/12 17:26:42 dsl Exp $ */
+/* $NetBSD: freebsd_syscall.c,v 1.39 2012/07/12 18:13:08 dsl Exp $ */
/*-
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: freebsd_syscall.c,v 1.38 2012/07/12 17:26:42 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: freebsd_syscall.c,v 1.39 2012/07/12 18:13:08 dsl Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -112,7 +112,8 @@ freebsd_syscall(struct trapframe *frame)
goto bad;
}
- if ((error = trace_enter(code, args, callp->sy_narg)) == 0) {
+ if (!__predict_false(p->p_trace_enabled)
+ || (error = trace_enter(code, args, callp->sy_narg)) == 0) {
rval[0] = 0;
rval[1] = frame->tf_edx; /* need to keep edx for shared FreeBSD bins */
error = sy_call(callp, l, args, rval);
@@ -142,7 +143,8 @@ freebsd_syscall(struct trapframe *frame)
break;
}
- trace_exit(code, rval, error);
+ if (__predict_false(p->p_trace_enabled))
+ trace_exit(code, rval, error);
userret(l);
}
Index: src/sys/arch/i386/i386/ibcs2_syscall.c
diff -u src/sys/arch/i386/i386/ibcs2_syscall.c:1.47 src/sys/arch/i386/i386/ibcs2_syscall.c:1.48
--- src/sys/arch/i386/i386/ibcs2_syscall.c:1.47 Thu Jul 12 17:26:42 2012
+++ src/sys/arch/i386/i386/ibcs2_syscall.c Thu Jul 12 18:13:08 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: ibcs2_syscall.c,v 1.47 2012/07/12 17:26:42 dsl Exp $ */
+/* $NetBSD: ibcs2_syscall.c,v 1.48 2012/07/12 18:13:08 dsl Exp $ */
/*-
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ibcs2_syscall.c,v 1.47 2012/07/12 17:26:42 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ibcs2_syscall.c,v 1.48 2012/07/12 18:13:08 dsl Exp $");
#if defined(_KERNEL_OPT)
#include "opt_vm86.h"
@@ -75,12 +75,14 @@ ibcs2_syscall(struct trapframe *frame)
char * params;
const struct sysent *callp;
struct lwp *l;
+ struct proc *p;
int error;
size_t argsize;
register_t code, args[8], rval[2];
l = curlwp;
- LWP_CACHE_CREDS(l, l->l_proc);
+ p = l->l_proc;
+ LWP_CACHE_CREDS(l, p);
code = frame->tf_eax;
if (IBCS2_HIGH_SYSCALL(code))
@@ -109,7 +111,8 @@ ibcs2_syscall(struct trapframe *frame)
goto bad;
}
- if ((error = trace_enter(code, args, callp->sy_narg)) == 0) {
+ if (!__predict_false(p->p_trace_enabled)
+ || (error = trace_enter(code, args, callp->sy_narg)) == 0) {
rval[0] = 0;
rval[1] = 0;
error = sy_call(callp, l, args, rval);
@@ -140,7 +143,8 @@ ibcs2_syscall(struct trapframe *frame)
break;
}
- trace_exit(code, rval, error);
+ if (__predict_false(p->p_trace_enabled))
+ trace_exit(code, rval, error);
userret(l);
}
Index: src/sys/arch/i386/i386/svr4_syscall.c
diff -u src/sys/arch/i386/i386/svr4_syscall.c:1.46 src/sys/arch/i386/i386/svr4_syscall.c:1.47
--- src/sys/arch/i386/i386/svr4_syscall.c:1.46 Thu Jul 12 17:26:42 2012
+++ src/sys/arch/i386/i386/svr4_syscall.c Thu Jul 12 18:13:08 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: svr4_syscall.c,v 1.46 2012/07/12 17:26:42 dsl Exp $ */
+/* $NetBSD: svr4_syscall.c,v 1.47 2012/07/12 18:13:08 dsl Exp $ */
/*-
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: svr4_syscall.c,v 1.46 2012/07/12 17:26:42 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: svr4_syscall.c,v 1.47 2012/07/12 18:13:08 dsl Exp $");
#if defined(_KERNEL_OPT)
#include "opt_vm86.h"
@@ -74,12 +74,14 @@ svr4_syscall(struct trapframe *frame)
char *params;
const struct sysent *callp;
struct lwp *l;
+ struct proc *p;
int error;
size_t argsize;
register_t code, args[8], rval[2];
l = curlwp;
- LWP_CACHE_CREDS(l, l->l_proc);
+ p = l->l_proc;
+ LWP_CACHE_CREDS(l, p);
code = frame->tf_eax;
callp = svr4_sysent;
@@ -106,7 +108,8 @@ svr4_syscall(struct trapframe *frame)
goto bad;
}
- if ((error = trace_enter(code, args, callp->sy_narg)) == 0) {
+ if (!__predict_false(p->p_trace_enabled)
+ || (error = trace_enter(code, args, callp->sy_narg)) == 0) {
rval[0] = 0;
rval[1] = 0;
error = sy_call(callp, l, args, rval);
@@ -137,7 +140,8 @@ svr4_syscall(struct trapframe *frame)
break;
}
- trace_exit(code, rval, error);
+ if (__predict_false(p->p_trace_enabled))
+ trace_exit(code, rval, error);
userret(l);
}