summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2008-06-24 00:37:04 +0200
committerRoland McGrath <roland@redhat.com>2008-07-24 02:47:32 +0200
commit86a1c34a929f30fde8ad01ea8245df61ddcf58b7 (patch)
treec4983e33488c66d3fcccad07b87b27f1bd2e6841 /kernel
parentx86_64: remove bogus optimization in sysret_signal (diff)
downloadlinux-86a1c34a929f30fde8ad01ea8245df61ddcf58b7.tar.xz
linux-86a1c34a929f30fde8ad01ea8245df61ddcf58b7.zip
x86_64 syscall audit fast-path
This adds a fast path for 64-bit syscall entry and exit when TIF_SYSCALL_AUDIT is set, but no other kind of syscall tracing. This path does not need to save and restore all registers as the general case of tracing does. Avoiding the iret return path when syscall audit is enabled helps performance a lot. Signed-off-by: Roland McGrath <roland@redhat.com>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/auditsc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/auditsc.c b/kernel/auditsc.c
index c10e7aae04d7..4699950e65bd 100644
--- a/kernel/auditsc.c
+++ b/kernel/auditsc.c
@@ -1476,7 +1476,8 @@ void audit_syscall_entry(int arch, int major,
struct audit_context *context = tsk->audit_context;
enum audit_state state;
- BUG_ON(!context);
+ if (unlikely(!context))
+ return;
/*
* This happens only on certain architectures that make system