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); }