[PATCH v17 15/15] arm64: vdso: Expose sigreturn address on vdso to the kernel

Linus Walleij linusw at kernel.org
Tue Jul 21 01:55:03 PDT 2026


On Tue, Jul 21, 2026 at 10:19 AM Jinjie Ruan <ruanjinjie at huawei.com> wrote:

> Syscall User Dispatch (SUD) must not intercept the signal trampoline
> code, otherwise returning from a signal with a locked selector may
> cause infinite recursion into the signal handler.
>
> Provide an arm64 implementation of arch_syscall_is_vdso_sigreturn()
> to exclude these sigreturn syscalls from dispatch.
>
> For native 64-bit tasks, check whether the current PC matches the 'svc #0'
> instruction inside the vDSO sigreturn trampoline (defined in
> arch/arm64/kernel/vdso/sigreturn.S as below).
>
>         SYM_CODE_START(__kernel_rt_sigreturn)
>                 mov     x8, #__NR_rt_sigreturn
>                 svc     #0
>         SYM_CODE_END(__kernel_rt_sigreturn)
>
> For COMPAT tasks, verify that the instruction falls within the dedicated
> 'sigpage' range, since compat signal handlers use this architecture-
> specific page (not the vDSO) for their return trampoline. This prevents
> SUD from incorrectly dispatching syscalls issued during signal return.
>
> Suggested-by: Thomas Weißschuh <thomas.weissschuh at linutronix.de>
> Suggested-by: Kevin Brodsky <kevin.brodsky at arm.com>
> Suggested-by: kemal <kmal at cock.li>
> Signed-off-by: Jinjie Ruan <ruanjinjie at huawei.com>

I'm a bit scared about SUD.

Certainly we can merge patches 1-14 first and iron out
any trouble related to that and split this off so a separate
series to be applied lated?

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list