diff options
| author | Jonas Bonn <jonas@southpole.se> | 2012-02-15 09:02:20 -0500 |
|---|---|---|
| committer | Jonas Bonn <jonas@southpole.se> | 2012-02-17 03:53:12 -0500 |
| commit | 3f6ffc8c2087791920721f086f9a92fde7bed9e2 (patch) | |
| tree | ac9fdb4e433d456304c110d01d0d4c7b5cdce026 | |
| parent | abdf8b5e07884a183938969253770164d60b87cb (diff) | |
openrisc: Fix up audit_syscall_[entry|exit]() usage
Commits d7e7528bcd456f5c36ad4a202ccfb43c5aa98bc4 and
b05d8447e7821695bc2fa3359431f7a664232743 simplified the usage of the
audit_syscall_[entry|exit] functions. Unfortunately, the OpenRISC
architecture didn't get fixed up along with the other architectures when
those patches were pushed. This makes the relevant changes to this
architecture.
Signed-off-by: Jonas Bonn <jonas@southpole.se>
| -rw-r--r-- | arch/openrisc/include/asm/ptrace.h | 8 | ||||
| -rw-r--r-- | arch/openrisc/kernel/ptrace.c | 12 |
2 files changed, 11 insertions, 9 deletions
diff --git a/arch/openrisc/include/asm/ptrace.h b/arch/openrisc/include/asm/ptrace.h index 054537c5f9c9..e612ce4512c7 100644 --- a/arch/openrisc/include/asm/ptrace.h +++ b/arch/openrisc/include/asm/ptrace.h | |||
| @@ -77,7 +77,6 @@ struct pt_regs { | |||
| 77 | long syscallno; /* Syscall number (used by strace) */ | 77 | long syscallno; /* Syscall number (used by strace) */ |
| 78 | long dummy; /* Cheap alignment fix */ | 78 | long dummy; /* Cheap alignment fix */ |
| 79 | }; | 79 | }; |
| 80 | #endif /* __ASSEMBLY__ */ | ||
| 81 | 80 | ||
| 82 | /* TODO: Rename this to REDZONE because that's what it is */ | 81 | /* TODO: Rename this to REDZONE because that's what it is */ |
| 83 | #define STACK_FRAME_OVERHEAD 128 /* size of minimum stack frame */ | 82 | #define STACK_FRAME_OVERHEAD 128 /* size of minimum stack frame */ |
| @@ -87,6 +86,13 @@ struct pt_regs { | |||
| 87 | #define user_stack_pointer(regs) ((unsigned long)(regs)->sp) | 86 | #define user_stack_pointer(regs) ((unsigned long)(regs)->sp) |
| 88 | #define profile_pc(regs) instruction_pointer(regs) | 87 | #define profile_pc(regs) instruction_pointer(regs) |
| 89 | 88 | ||
| 89 | static inline long regs_return_value(struct pt_regs *regs) | ||
| 90 | { | ||
| 91 | return regs->gpr[11]; | ||
| 92 | } | ||
| 93 | |||
| 94 | #endif /* __ASSEMBLY__ */ | ||
| 95 | |||
| 90 | /* | 96 | /* |
| 91 | * Offsets used by 'ptrace' system call interface. | 97 | * Offsets used by 'ptrace' system call interface. |
| 92 | */ | 98 | */ |
diff --git a/arch/openrisc/kernel/ptrace.c b/arch/openrisc/kernel/ptrace.c index 656b94beab89..7259047d5f9d 100644 --- a/arch/openrisc/kernel/ptrace.c +++ b/arch/openrisc/kernel/ptrace.c | |||
| @@ -188,11 +188,9 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs) | |||
| 188 | */ | 188 | */ |
| 189 | ret = -1L; | 189 | ret = -1L; |
| 190 | 190 | ||
| 191 | /* Are these regs right??? */ | 191 | audit_syscall_entry(audit_arch(), regs->syscallno, |
| 192 | if (unlikely(current->audit_context)) | 192 | regs->gpr[3], regs->gpr[4], |
| 193 | audit_syscall_entry(audit_arch(), regs->syscallno, | 193 | regs->gpr[5], regs->gpr[6]); |
| 194 | regs->gpr[3], regs->gpr[4], | ||
| 195 | regs->gpr[5], regs->gpr[6]); | ||
| 196 | 194 | ||
| 197 | return ret ? : regs->syscallno; | 195 | return ret ? : regs->syscallno; |
| 198 | } | 196 | } |
| @@ -201,9 +199,7 @@ asmlinkage void do_syscall_trace_leave(struct pt_regs *regs) | |||
| 201 | { | 199 | { |
| 202 | int step; | 200 | int step; |
| 203 | 201 | ||
| 204 | if (unlikely(current->audit_context)) | 202 | audit_syscall_exit(regs); |
| 205 | audit_syscall_exit(AUDITSC_RESULT(regs->gpr[11]), | ||
| 206 | regs->gpr[11]); | ||
| 207 | 203 | ||
| 208 | step = test_thread_flag(TIF_SINGLESTEP); | 204 | step = test_thread_flag(TIF_SINGLESTEP); |
| 209 | if (step || test_thread_flag(TIF_SYSCALL_TRACE)) | 205 | if (step || test_thread_flag(TIF_SYSCALL_TRACE)) |
