Skip to content

Commit

Permalink
openrisc: Fix up audit_syscall_[entry|exit]() usage
Browse files Browse the repository at this point in the history
Commits d7e7528 and
b05d844 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>
  • Loading branch information
Jonas Bonn committed Feb 17, 2012
1 parent abdf8b5 commit 3f6ffc8
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 9 deletions.
8 changes: 7 additions & 1 deletion arch/openrisc/include/asm/ptrace.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,6 @@ struct pt_regs {
long syscallno; /* Syscall number (used by strace) */
long dummy; /* Cheap alignment fix */
};
#endif /* __ASSEMBLY__ */

/* TODO: Rename this to REDZONE because that's what it is */
#define STACK_FRAME_OVERHEAD 128 /* size of minimum stack frame */
Expand All @@ -87,6 +86,13 @@ struct pt_regs {
#define user_stack_pointer(regs) ((unsigned long)(regs)->sp)
#define profile_pc(regs) instruction_pointer(regs)

static inline long regs_return_value(struct pt_regs *regs)
{
return regs->gpr[11];
}

#endif /* __ASSEMBLY__ */

/*
* Offsets used by 'ptrace' system call interface.
*/
Expand Down
12 changes: 4 additions & 8 deletions arch/openrisc/kernel/ptrace.c
Original file line number Diff line number Diff line change
Expand Up @@ -188,11 +188,9 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
*/
ret = -1L;

/* Are these regs right??? */
if (unlikely(current->audit_context))
audit_syscall_entry(audit_arch(), regs->syscallno,
regs->gpr[3], regs->gpr[4],
regs->gpr[5], regs->gpr[6]);
audit_syscall_entry(audit_arch(), regs->syscallno,
regs->gpr[3], regs->gpr[4],
regs->gpr[5], regs->gpr[6]);

return ret ? : regs->syscallno;
}
Expand All @@ -201,9 +199,7 @@ asmlinkage void do_syscall_trace_leave(struct pt_regs *regs)
{
int step;

if (unlikely(current->audit_context))
audit_syscall_exit(AUDITSC_RESULT(regs->gpr[11]),
regs->gpr[11]);
audit_syscall_exit(regs);

step = test_thread_flag(TIF_SINGLESTEP);
if (step || test_thread_flag(TIF_SYSCALL_TRACE))
Expand Down

0 comments on commit 3f6ffc8

Please sign in to comment.