Linux Kernel Selftest development
 help / color / mirror / Atom feed
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: Jinjie Ruan <ruanjinjie@huawei.com>,
	catalin.marinas@arm.com, will@kernel.org, oleg@redhat.com,
	tglx@linutronix.de, peterz@infradead.org, luto@kernel.org,
	shuah@kernel.org, kees@kernel.org, wad@chromium.org,
	deller@gmx.de, macro@orcam.me.uk, charlie@rivosinc.com,
	ldv@strace.io, mark.rutland@arm.com, song@kernel.org,
	ryan.roberts@arm.com, ada.coupriediaz@arm.com,
	anshuman.khandual@arm.com, broonie@kernel.org,
	pengcan@kylinos.cn, dvyukov@google.com,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org
Subject: Re: [PATCH v9 03/16] arm64/ptrace: Return early for ptrace_report_syscall_entry() error
Date: Tue, 9 Dec 2025 14:46:06 +0100	[thread overview]
Message-ID: <52f63e40-541f-4ed8-9d05-626eab4b39cb@arm.com> (raw)
In-Reply-To: <20251204082123.2792067-4-ruanjinjie@huawei.com>

On 04/12/2025 09:21, Jinjie Ruan wrote:
> The generic entry abort the syscall_trace_enter() sequence if
> ptrace_report_syscall_entry() errors out, but arm64 not.
>
> As the ptrace_report_syscall_entry() comment said, the calling arch code
> should abort the system call and must prevent normal entry so no system
> call is made if ptrace_report_syscall_entry() return nonzero.

This patch is now in the right position, which means that arm64 does
abort the syscall already without this patch. What we're changing here
is that the tracing sequence is interrupted. The comment you're
referring to says nothing about tracing so I'm not sure it helps to
refer to it.

Otherwise:

Reviewed-by: Kevin Brodsky <kevin.brodsky@arm.com>

> In preparation for moving arm64 over to the generic entry code,
> return early if ptrace_report_syscall_entry() encounters an error.
>
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---
>  arch/arm64/kernel/ptrace.c | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c
> index 4532e9831856..3926ce6aa268 100644
> --- a/arch/arm64/kernel/ptrace.c
> +++ b/arch/arm64/kernel/ptrace.c
> @@ -2346,15 +2346,18 @@ static __always_inline unsigned long ptrace_save_reg(struct pt_regs *regs,
>  	return saved_reg;
>  }
>  
> -static void report_syscall_entry(struct pt_regs *regs)
> +static int report_syscall_entry(struct pt_regs *regs)
>  {
>  	unsigned long saved_reg;
> -	int regno;
> +	int regno, ret;
>  
>  	saved_reg = ptrace_save_reg(regs, PTRACE_SYSCALL_ENTER, &regno);
> -	if (ptrace_report_syscall_entry(regs))
> +	ret = ptrace_report_syscall_entry(regs);
> +	if (ret)
>  		forget_syscall(regs);
>  	regs->regs[regno] = saved_reg;
> +
> +	return ret;
>  }
>  
>  static void report_syscall_exit(struct pt_regs *regs)
> @@ -2381,10 +2384,11 @@ static void report_syscall_exit(struct pt_regs *regs)
>  int syscall_trace_enter(struct pt_regs *regs)
>  {
>  	unsigned long flags = read_thread_flags();
> +	int ret;
>  
>  	if (flags & (_TIF_SYSCALL_EMU | _TIF_SYSCALL_TRACE)) {
> -		report_syscall_entry(regs);
> -		if (flags & _TIF_SYSCALL_EMU)
> +		ret = report_syscall_entry(regs);
> +		if (ret || (flags & _TIF_SYSCALL_EMU))
>  			return NO_SYSCALL;
>  	}
>  

  parent reply	other threads:[~2025-12-09 13:46 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-04  8:21 [PATCH v9 00/16] arm64: entry: Convert to Generic Entry Jinjie Ruan
2025-12-04  8:21 ` [PATCH v9 01/16] arm64: Remove unused _TIF_WORK_MASK Jinjie Ruan
2025-12-08  4:42   ` Anshuman Khandual
2025-12-04  8:21 ` [PATCH v9 02/16] arm64/ptrace: Split report_syscall() Jinjie Ruan
2025-12-08  5:02   ` Anshuman Khandual
2025-12-04  8:21 ` [PATCH v9 03/16] arm64/ptrace: Return early for ptrace_report_syscall_entry() error Jinjie Ruan
2025-12-08  5:24   ` Anshuman Khandual
2025-12-08  6:31     ` Jinjie Ruan
2025-12-09 13:46   ` Kevin Brodsky [this message]
2025-12-12  4:00     ` Jinjie Ruan
2025-12-15 15:24       ` Kevin Brodsky
2025-12-04  8:21 ` [PATCH v9 04/16] arm64/ptrace: Refactor syscall_trace_enter/exit() Jinjie Ruan
2025-12-08  5:48   ` Anshuman Khandual
2025-12-08  6:24     ` Jinjie Ruan
2025-12-04  8:21 ` [PATCH v9 05/16] arm64: ptrace: Move rseq_syscall() before audit_syscall_exit() Jinjie Ruan
2025-12-04  8:21 ` [PATCH v9 06/16] arm64: syscall: Rework el0_svc_common() Jinjie Ruan
2025-12-04  8:21 ` [PATCH v9 07/16] arm64/ptrace: Not check _TIF_SECCOMP/SYSCALL_EMU for syscall_exit_work() Jinjie Ruan
2025-12-04  8:21 ` [PATCH v9 08/16] arm64/ptrace: Do not report_syscall_exit() for PTRACE_SYSEMU_SINGLESTEP Jinjie Ruan
2025-12-04  8:21 ` [PATCH v9 09/16] arm64/ptrace: Expand secure_computing() in place Jinjie Ruan
2025-12-04  8:21 ` [PATCH v9 10/16] arm64/ptrace: Use syscall_get_arguments() helper Jinjie Ruan
2025-12-04  8:21 ` [PATCH v9 11/16] entry: Split syscall_exit_to_user_mode_work() for arch reuse Jinjie Ruan
2025-12-04  8:21 ` [PATCH v9 12/16] entry: Add arch_ptrace_report_syscall_entry/exit() Jinjie Ruan
2025-12-04  8:21 ` [PATCH v9 13/16] arm64: entry: Convert to generic entry Jinjie Ruan
2025-12-09 13:47   ` Kevin Brodsky
2025-12-04  8:21 ` [PATCH v9 14/16] arm64: Inline el0_svc_common() Jinjie Ruan
2025-12-09 13:48   ` Kevin Brodsky
2025-12-10  2:56     ` Jinjie Ruan
2025-12-04  8:21 ` [PATCH v9 15/16] entry: Inline syscall_exit_work() Jinjie Ruan
2025-12-09 13:48   ` Kevin Brodsky
2025-12-11  6:55     ` Thomas Gleixner
2025-12-11  9:52       ` Kevin Brodsky
2025-12-12  1:12         ` Thomas Gleixner
2025-12-12  1:26       ` Jinjie Ruan
2025-12-12  3:49     ` Jinjie Ruan
2025-12-04  8:21 ` [PATCH v9 16/16] selftests: sud_test: Support aarch64 Jinjie Ruan
2025-12-20 14:53   ` kemal

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=52f63e40-541f-4ed8-9d05-626eab4b39cb@arm.com \
    --to=kevin.brodsky@arm.com \
    --cc=ada.coupriediaz@arm.com \
    --cc=anshuman.khandual@arm.com \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=charlie@rivosinc.com \
    --cc=deller@gmx.de \
    --cc=dvyukov@google.com \
    --cc=kees@kernel.org \
    --cc=ldv@strace.io \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --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=ruanjinjie@huawei.com \
    --cc=ryan.roberts@arm.com \
    --cc=shuah@kernel.org \
    --cc=song@kernel.org \
    --cc=tglx@linutronix.de \
    --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