|
@@ -532,16 +532,22 @@ void do_syscall_trace_enter(struct pt_regs *regs)
|
|
&& (current->ptrace & PT_PTRACED))
|
|
&& (current->ptrace & PT_PTRACED))
|
|
do_syscall_trace();
|
|
do_syscall_trace();
|
|
|
|
|
|
- if (unlikely(current->audit_context))
|
|
|
|
- audit_syscall_entry(
|
|
|
|
-#ifdef CONFIG_PPC32
|
|
|
|
- AUDIT_ARCH_PPC,
|
|
|
|
-#else
|
|
|
|
- test_thread_flag(TIF_32BIT)?AUDIT_ARCH_PPC:AUDIT_ARCH_PPC64,
|
|
|
|
|
|
+ if (unlikely(current->audit_context)) {
|
|
|
|
+#ifdef CONFIG_PPC64
|
|
|
|
+ if (!test_thread_flag(TIF_32BIT))
|
|
|
|
+ audit_syscall_entry(AUDIT_ARCH_PPC64,
|
|
|
|
+ regs->gpr[0],
|
|
|
|
+ regs->gpr[3], regs->gpr[4],
|
|
|
|
+ regs->gpr[5], regs->gpr[6]);
|
|
|
|
+ else
|
|
#endif
|
|
#endif
|
|
- regs->gpr[0],
|
|
|
|
- regs->gpr[3], regs->gpr[4],
|
|
|
|
- regs->gpr[5], regs->gpr[6]);
|
|
|
|
|
|
+ audit_syscall_entry(AUDIT_ARCH_PPC,
|
|
|
|
+ regs->gpr[0],
|
|
|
|
+ regs->gpr[3] & 0xffffffff,
|
|
|
|
+ regs->gpr[4] & 0xffffffff,
|
|
|
|
+ regs->gpr[5] & 0xffffffff,
|
|
|
|
+ regs->gpr[6] & 0xffffffff);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
void do_syscall_trace_leave(struct pt_regs *regs)
|
|
void do_syscall_trace_leave(struct pt_regs *regs)
|