Re: [PATCH v16 18/18] arm64: vdso: Expose sigreturn address on vdso to the kernel
From: Ada Couprie Diaz
Date: Tue Jun 30 2026 - 11:14:56 EST
Hi Jinjie,
On 29/06/2026 14:06, Jinjie Ruan wrote:
Syscall User Dispatch (SUD) requires the signal trampoline code to not be
intercepted. This is necessary to support returning with a locked selector
while avoiding infinite recursion back into the signal handler.
Thanks for splitting this out, I find it is much clearer that way !
However, this should definitely be earlier in the series
As I mentioned in my comment in v15, Syscall User Dispatch only depends
on `CONFIG_GENERIC_ENTRY`, so enabling generic entry for arm64 in patch 16
also enables Syscall User Dispatch.
Given that this series adds a weak default function returning false for
`arch_syscall_is_vdso_sigreturn()` before enabling generic entry for arm64
in patch 16, patch 16 and 17 have a potentially broken SUD enabled,
as we do not check for those sigreturns yet.
I think shuffling this patch back just before converting to generic entry
should be OK !
Maybe add `arch/arm64/kernel/vdso/sigreturn.S` to mention where
Implement arch_syscall_is_vdso_sigreturn() for arm64 to support this
exclusion mechanism. For native 64-bit tasks, it checks whether the current
PC matches the 'svc #0' instruction inside the vDSO sigreturn trampoline.
SYM_CODE_START(__kernel_rt_sigreturn)
mov x8, #__NR_rt_sigreturn
svc #0
SYM_CODE_END(__kernel_rt_sigreturn)
this snippet comes from ?
I think this might benefit from a bit more details or clarity on the "why"
For COMPAT tasks, it verifies if the instruction falls within
the architecture's 'sigpage' range, allowing the kernel to safely bypass
dispatching syscalls originating from these areas back to userspace.
of the COMPAT handling : there is a vDSO page for COMPAT tasks, but
COMPAT signal handlers have their own dedicated page, `sigpage`,
which serves the same purpose and is handled similarly, so it needs
to be checked as well.
Hopefully that is correct... Would you find that relevant information to add ?
Pinging @Kevin Brodsky on that as well.
Suggested-by: Kevin Brodsky <kevin.brodsky@xxxxxxx>
Suggested-by: kemal <kmal@xxxxxxx>
Signed-off-by: Jinjie Ruan <ruanjinjie@xxxxxxxxxx>
---
arch/arm64/include/asm/elf.h | 1 +
arch/arm64/kernel/vdso.c | 16 ++++++++++++++++
2 files changed, 17 insertions(+)
Otherwise this looks good to me, great to have more context with the change !
Thanks,
Ada