lkml.org 
[lkml]   [2019]   [Mar]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] csky: Update syscall_trace_enter/exit implementation
On Mon, Mar 25, 2019 at 08:03:39PM +0800, guoren@kernel.org wrote:
> From: Guo Ren <ren_guo@c-sky.com>
>
> Previous syscall_trace implementation couldn't support AUDITSYSCALL and
> SYSCALL_TRACEPOINTS. Now we redesign it to support audit_syscall
> and syscall_tracepoints just like other archs'.
>
> Signed-off-by: Guo Ren <ren_guo@c-sky.com>
> Cc: Dmitry V. Levin <ldv@altlinux.org>
> Cc: Arnd Bergmann <arnd@arndb.de>
> ---
> arch/csky/Kconfig | 2 ++
> arch/csky/include/asm/syscall.h | 2 ++
> arch/csky/include/asm/thread_info.h | 25 ++++++++-----------
> arch/csky/include/asm/unistd.h | 2 ++
> arch/csky/include/uapi/asm/ptrace.h | 5 ++++
> arch/csky/kernel/entry.S | 21 +++++++---------
...
> diff --git a/arch/csky/kernel/entry.S b/arch/csky/kernel/entry.S
> index 5137ed9..ebd1957 100644
> --- a/arch/csky/kernel/entry.S
> +++ b/arch/csky/kernel/entry.S
> @@ -136,8 +136,8 @@ ENTRY(csky_systemcall)
> bmaski r10, THREAD_SHIFT
> andn r9, r10
> ldw r8, (r9, TINFO_FLAGS)
> - btsti r8, TIF_SYSCALL_TRACE
> - bt 1f
> + andi r8, (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT | _TIF_SYSCALL_AUDIT)
> + bt csky_syscall_trace
> #if defined(__CSKYABIV2__)
> subi sp, 8
> stw r5, (sp, 0x4)
> @@ -150,10 +150,9 @@ ENTRY(csky_systemcall)
> stw a0, (sp, LSAVE_A0) /* Save return value */
> jmpi ret_from_exception
>
> -1:
> - movi a0, 0 /* enter system call */
> - mov a1, sp /* sp = pt_regs pointer */
> - jbsr syscall_trace
> +csky_syscall_trace:
> + mov a0, sp /* sp = pt_regs pointer */
> + jbsr syscall_trace_enter
> /* Prepare args before do system call */
> ldw a0, (sp, LSAVE_A0)
> ldw a1, (sp, LSAVE_A1)
> @@ -173,9 +172,8 @@ ENTRY(csky_systemcall)
> #endif
> stw a0, (sp, LSAVE_A0) /* Save return value */
>
> - movi a0, 1 /* leave system call */
> - mov a1, sp /* right now, sp --> pt_regs */
> - jbsr syscall_trace
> + mov a0, sp /* right now, sp --> pt_regs */
> + jbsr syscall_trace_exit
> br ret_from_exception
>
> ENTRY(ret_from_kernel_thread)
> @@ -193,9 +191,8 @@ ENTRY(ret_from_fork)
> movi r11_sig, 1
> btsti r8, TIF_SYSCALL_TRACE
It's wrong, I should use:
+ andi r8, (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT | _TIF_SYSCALL_AUDIT)

Best Regards
Guo Ren

\
 
 \ /
  Last update: 2019-03-25 15:40    [W:0.060 / U:0.900 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site