Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Jinjie Ruan <ruanjinjie@huawei.com>
To: Will Deacon <will@kernel.org>
Cc: mark.rutland@arm.com, peterz@infradead.org,
	catalin.marinas@arm.com, ldv@strace.io, song@kernel.org,
	linux-kselftest@vger.kernel.org, shuah@kernel.org,
	kees@kernel.org, linux-arm-kernel@lists.infradead.org,
	kmal@cock.li, thuth@redhat.com, ryan.roberts@arm.com,
	anshuman.khandual@arm.com, kevin.brodsky@arm.com,
	charlie@rivosinc.com, pengcan@kylinos.cn, broonie@kernel.org,
	luto@kernel.org, tglx@linutronix.de, richard.weiyang@gmail.com,
	dvyukov@google.com, wad@chromium.org, oleg@redhat.com,
	linux-kernel@vger.kernel.org, liqiang01@kylinos.cn,
	akpm@linux-foundation.org, reddybalavignesh9979@gmail.com,
	macro@orcam.me.uk
Subject: Re: [PATCH v10 04/16] arm64/ptrace: Refactor syscall_trace_enter/exit()
Date: Tue, 27 Jan 2026 11:01:16 +0800	[thread overview]
Message-ID: <4f07254d-b158-a1ce-69a7-4fa4b0f339c1@huawei.com> (raw)
In-Reply-To: <aXeZdh3CtznU8u6L@willie-the-truck>



On 2026/1/27 0:42, Will Deacon wrote:
> On Mon, Dec 22, 2025 at 07:47:25PM +0800, Jinjie Ruan wrote:
>> The generic syscall entry code has the following form, which use
>> the input syscall work flag and syscall number:
>>
>> | syscall_trace_enter(struct pt_regs *regs, long syscall,
>> |		      unsigned long work)
>> |
>> | syscall_exit_work(struct pt_regs *regs, unsigned long work)
>>
>> In preparation for moving arm64 over to the generic entry code,
>> refactor syscall_trace_enter/exit() to also pass thread flags, and
>> get syscall number by syscall_get_nr() helper.
>>
>> No functional changes.
>>
>> Reviewed-by: Kevin Brodsky <kevin.brodsky@arm.com>
>> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
>> ---
>>  arch/arm64/include/asm/syscall.h |  4 ++--
>>  arch/arm64/kernel/ptrace.c       | 25 ++++++++++++++++---------
>>  arch/arm64/kernel/syscall.c      |  5 +++--
>>  3 files changed, 21 insertions(+), 13 deletions(-)
>>
>> diff --git a/arch/arm64/include/asm/syscall.h b/arch/arm64/include/asm/syscall.h
>> index 5e4c7fc44f73..cef1d9ce6e1b 100644
>> --- a/arch/arm64/include/asm/syscall.h
>> +++ b/arch/arm64/include/asm/syscall.h
>> @@ -120,7 +120,7 @@ static inline int syscall_get_arch(struct task_struct *task)
>>  	return AUDIT_ARCH_AARCH64;
>>  }
>>  
>> -int syscall_trace_enter(struct pt_regs *regs);
>> -void syscall_trace_exit(struct pt_regs *regs);
>> +int syscall_trace_enter(struct pt_regs *regs, long syscall, unsigned long flags);
>> +void syscall_trace_exit(struct pt_regs *regs, unsigned long flags);
>>  
>>  #endif	/* __ASM_SYSCALL_H */
>> diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c
>> index f333791ffba6..79762ff33945 100644
>> --- a/arch/arm64/kernel/ptrace.c
>> +++ b/arch/arm64/kernel/ptrace.c
>> @@ -2407,9 +2407,8 @@ static void report_syscall_exit(struct pt_regs *regs)
>>  	}
>>  }
>>  
>> -int syscall_trace_enter(struct pt_regs *regs)
>> +int syscall_trace_enter(struct pt_regs *regs, long syscall, unsigned long flags)
>>  {
>> -	unsigned long flags = read_thread_flags();
>>  	int ret;
>>  
>>  	if (flags & (_TIF_SYSCALL_EMU | _TIF_SYSCALL_TRACE)) {
>> @@ -2422,19 +2421,27 @@ int syscall_trace_enter(struct pt_regs *regs)
>>  	if (secure_computing() == -1)
>>  		return NO_SYSCALL;
>>  
>> -	if (test_thread_flag(TIF_SYSCALL_TRACEPOINT))
>> -		trace_sys_enter(regs, regs->syscallno);
>> +	/* Either of the above might have changed the syscall number */
>> +	syscall = syscall_get_nr(current, regs);
> 
> I understand that you're gradually making the arch code more similar to
> the core code so that we can switch over to it, but I'm struggling to
> understand why syscall_trace_enter() takes the 'syscall' argument.
> 
> Even the core code just seems to use it as a local variable, which it
> overrides before it ever uses it. What am I missing?

Hi,

You're absolutely right. The 'syscall' parameter is indeed treated as a
local variable and gets overridden before any real use. Should we
refactor to remove the parameter entirely in generic entry?

Regards,
Jinjie

> 
> Will
> 


  reply	other threads:[~2026-01-27  3:01 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-22 11:47 [PATCH v10 00/16] arm64: entry: Convert to Generic Entry Jinjie Ruan
2025-12-22 11:47 ` [PATCH v10 01/16] arm64: Remove unused _TIF_WORK_MASK Jinjie Ruan
2025-12-22 11:47 ` [PATCH v10 02/16] arm64/ptrace: Split report_syscall() Jinjie Ruan
2025-12-22 11:47 ` [PATCH v10 03/16] arm64/ptrace: Return early for ptrace_report_syscall_entry() error Jinjie Ruan
2025-12-22 11:47 ` [PATCH v10 04/16] arm64/ptrace: Refactor syscall_trace_enter/exit() Jinjie Ruan
2026-01-26 16:42   ` Will Deacon
2026-01-27  3:01     ` Jinjie Ruan [this message]
2026-01-27  9:43       ` Kevin Brodsky
2026-01-27 11:02         ` Jinjie Ruan
2026-01-27 14:54           ` Kevin Brodsky
2025-12-22 11:47 ` [PATCH v10 05/16] arm64: ptrace: Move rseq_syscall() before audit_syscall_exit() Jinjie Ruan
2026-01-26 19:02   ` Will Deacon
2026-01-27  9:44     ` Kevin Brodsky
2026-01-27 11:34       ` Jinjie Ruan
2026-01-27 15:06         ` Kevin Brodsky
2026-01-28  1:09           ` Jinjie Ruan
2026-01-28 14:53             ` Kevin Brodsky
2026-01-29  3:50               ` Jinjie Ruan
2025-12-22 11:47 ` [PATCH v10 06/16] arm64: syscall: Rework el0_svc_common() Jinjie Ruan
2025-12-22 11:47 ` [PATCH v10 07/16] arm64/ptrace: Not check _TIF_SECCOMP/SYSCALL_EMU for syscall_exit_work() Jinjie Ruan
2025-12-22 11:47 ` [PATCH v10 08/16] arm64/ptrace: Do not report_syscall_exit() for PTRACE_SYSEMU_SINGLESTEP Jinjie Ruan
2025-12-22 11:47 ` [PATCH v10 09/16] arm64/ptrace: Expand secure_computing() in place Jinjie Ruan
2025-12-22 11:47 ` [PATCH v10 10/16] arm64/ptrace: Use syscall_get_arguments() helper Jinjie Ruan
2025-12-22 11:47 ` [PATCH v10 11/16] entry: Split syscall_exit_to_user_mode_work() for arch reuse Jinjie Ruan
2025-12-29 18:03   ` Kevin Brodsky
2025-12-31  1:35     ` Jinjie Ruan
2025-12-22 11:47 ` [PATCH v10 12/16] entry: Add arch_ptrace_report_syscall_entry/exit() Jinjie Ruan
2025-12-22 11:47 ` [PATCH v10 13/16] arm64: entry: Convert to generic entry Jinjie Ruan
2025-12-22 11:47 ` [PATCH v10 14/16] arm64: Inline el0_svc_common() Jinjie Ruan
2025-12-22 11:47 ` [PATCH v10 15/16] entry: Inline syscall_exit_work() and syscall_trace_enter() Jinjie Ruan
2025-12-22 11:47 ` [PATCH v10 16/16] selftests: sud_test: Support aarch64 Jinjie Ruan
2026-01-19  2:02 ` [PATCH v10 00/16] arm64: entry: Convert to Generic Entry Jinjie Ruan
2026-01-27 11:39 ` Will Deacon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4f07254d-b158-a1ce-69a7-4fa4b0f339c1@huawei.com \
    --to=ruanjinjie@huawei.com \
    --cc=akpm@linux-foundation.org \
    --cc=anshuman.khandual@arm.com \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=charlie@rivosinc.com \
    --cc=dvyukov@google.com \
    --cc=kees@kernel.org \
    --cc=kevin.brodsky@arm.com \
    --cc=kmal@cock.li \
    --cc=ldv@strace.io \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=liqiang01@kylinos.cn \
    --cc=luto@kernel.org \
    --cc=macro@orcam.me.uk \
    --cc=mark.rutland@arm.com \
    --cc=oleg@redhat.com \
    --cc=pengcan@kylinos.cn \
    --cc=peterz@infradead.org \
    --cc=reddybalavignesh9979@gmail.com \
    --cc=richard.weiyang@gmail.com \
    --cc=ryan.roberts@arm.com \
    --cc=shuah@kernel.org \
    --cc=song@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=thuth@redhat.com \
    --cc=wad@chromium.org \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox