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]; |
