diff options
author | Eric Paris <eparis@redhat.com> | 2014-03-11 13:29:28 -0400 |
---|---|---|
committer | Eric Paris <eparis@redhat.com> | 2014-09-23 16:21:26 -0400 |
commit | 91397401bb5072f71e8ce8744ad0bdec3e875a91 (patch) | |
tree | a302a36a358ec001812ac495606fa6ced52a672e /arch/sh | |
parent | ce5d112827e5c2e9864323d0efd7ec2a62c6dce0 (diff) |
ARCH: AUDIT: audit_syscall_entry() should not require the arch
We have a function where the arch can be queried, syscall_get_arch().
So rather than have every single piece of arch specific code use and/or
duplicate syscall_get_arch(), just have the audit code use the
syscall_get_arch() code.
Based-on-patch-by: Richard Briggs <rgb@redhat.com>
Signed-off-by: Eric Paris <eparis@redhat.com>
Cc: linux-alpha@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-ia64@vger.kernel.org
Cc: microblaze-uclinux@itee.uq.edu.au
Cc: linux-mips@linux-mips.org
Cc: linux@lists.openrisc.net
Cc: linux-parisc@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-s390@vger.kernel.org
Cc: linux-sh@vger.kernel.org
Cc: sparclinux@vger.kernel.org
Cc: user-mode-linux-devel@lists.sourceforge.net
Cc: linux-xtensa@linux-xtensa.org
Cc: x86@kernel.org
Diffstat (limited to 'arch/sh')
-rw-r--r-- | arch/sh/kernel/ptrace_32.c | 14 | ||||
-rw-r--r-- | arch/sh/kernel/ptrace_64.c | 17 |
2 files changed, 2 insertions, 29 deletions
diff --git a/arch/sh/kernel/ptrace_32.c b/arch/sh/kernel/ptrace_32.c index 668c81631c08..c1a6b89bfe70 100644 --- a/arch/sh/kernel/ptrace_32.c +++ b/arch/sh/kernel/ptrace_32.c | |||
@@ -484,17 +484,6 @@ long arch_ptrace(struct task_struct *child, long request, | |||
484 | return ret; | 484 | return ret; |
485 | } | 485 | } |
486 | 486 | ||
487 | static inline int audit_arch(void) | ||
488 | { | ||
489 | int arch = EM_SH; | ||
490 | |||
491 | #ifdef CONFIG_CPU_LITTLE_ENDIAN | ||
492 | arch |= __AUDIT_ARCH_LE; | ||
493 | #endif | ||
494 | |||
495 | return arch; | ||
496 | } | ||
497 | |||
498 | asmlinkage long do_syscall_trace_enter(struct pt_regs *regs) | 487 | asmlinkage long do_syscall_trace_enter(struct pt_regs *regs) |
499 | { | 488 | { |
500 | long ret = 0; | 489 | long ret = 0; |
@@ -513,8 +502,7 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs) | |||
513 | if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) | 502 | if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) |
514 | trace_sys_enter(regs, regs->regs[0]); | 503 | trace_sys_enter(regs, regs->regs[0]); |
515 | 504 | ||
516 | audit_syscall_entry(audit_arch(), regs->regs[3], | 505 | audit_syscall_entry(regs->regs[3], regs->regs[4], regs->regs[5], |
517 | regs->regs[4], regs->regs[5], | ||
518 | regs->regs[6], regs->regs[7]); | 506 | regs->regs[6], regs->regs[7]); |
519 | 507 | ||
520 | return ret ?: regs->regs[0]; | 508 | return ret ?: regs->regs[0]; |
diff --git a/arch/sh/kernel/ptrace_64.c b/arch/sh/kernel/ptrace_64.c index af90339dadcd..5cea973a65b2 100644 --- a/arch/sh/kernel/ptrace_64.c +++ b/arch/sh/kernel/ptrace_64.c | |||
@@ -504,20 +504,6 @@ asmlinkage int sh64_ptrace(long request, long pid, | |||
504 | return sys_ptrace(request, pid, addr, data); | 504 | return sys_ptrace(request, pid, addr, data); |
505 | } | 505 | } |
506 | 506 | ||
507 | static inline int audit_arch(void) | ||
508 | { | ||
509 | int arch = EM_SH; | ||
510 | |||
511 | #ifdef CONFIG_64BIT | ||
512 | arch |= __AUDIT_ARCH_64BIT; | ||
513 | #endif | ||
514 | #ifdef CONFIG_CPU_LITTLE_ENDIAN | ||
515 | arch |= __AUDIT_ARCH_LE; | ||
516 | #endif | ||
517 | |||
518 | return arch; | ||
519 | } | ||
520 | |||
521 | asmlinkage long long do_syscall_trace_enter(struct pt_regs *regs) | 507 | asmlinkage long long do_syscall_trace_enter(struct pt_regs *regs) |
522 | { | 508 | { |
523 | long long ret = 0; | 509 | long long ret = 0; |
@@ -536,8 +522,7 @@ asmlinkage long long do_syscall_trace_enter(struct pt_regs *regs) | |||
536 | if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) | 522 | if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) |
537 | trace_sys_enter(regs, regs->regs[9]); | 523 | trace_sys_enter(regs, regs->regs[9]); |
538 | 524 | ||
539 | audit_syscall_entry(audit_arch(), regs->regs[1], | 525 | audit_syscall_entry(regs->regs[1], regs->regs[2], regs->regs[3], |
540 | regs->regs[2], regs->regs[3], | ||
541 | regs->regs[4], regs->regs[5]); | 526 | regs->regs[4], regs->regs[5]); |
542 | 527 | ||
543 | return ret ?: regs->regs[9]; | 528 | return ret ?: regs->regs[9]; |