[PATCH] S390: Always use svc 0

Stefan Liebler stli@linux.ibm.com
Tue Aug 30 08:59:15 GMT 2022


On 25/08/2022 12:17, Stefan Liebler wrote:
> On s390x syscalls are triggered by svc instruction. One can
> pass the syscall number encoded in the instruction "svc 123"
> or by storing it in r1:
> lghi r1,123
> svc 0
> 
> If the syscall number is encoded in the instruction, this can
> cause broken syscall restarts.  Therefore this patch is now just
> passing the syscall number in r1.
> 
> See also kernel-commit:
> "s390/signal: switch to using vdso for sigreturn and syscall restart"
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/arch/s390/[%e2%80%a6]call.c?h=v6.0-rc1&id=df29a7440c4b5c65765c8f60396b3b13063e24e9
> 
> As information, the "svc 0" feature was introduced in kernel 2.5.62:
> commit b5aad611393ef2e132e3648fa4c6e56a9cfa8708
> ---
>  sysdeps/unix/sysv/linux/s390/s390-32/clone.S  | 14 ++++----
>  .../unix/sysv/linux/s390/s390-32/getcontext.S |  8 +++--
>  .../unix/sysv/linux/s390/s390-32/setcontext.S |  8 +++--
>  .../sysv/linux/s390/s390-32/swapcontext.S     |  3 +-
>  sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h |  4 ---
>  sysdeps/unix/sysv/linux/s390/s390-32/vfork.S  |  3 +-
>  sysdeps/unix/sysv/linux/s390/s390-64/clone.S  | 14 ++++----
>  .../unix/sysv/linux/s390/s390-64/getcontext.S |  8 +++--
>  .../unix/sysv/linux/s390/s390-64/setcontext.S |  8 +++--
>  .../sysv/linux/s390/s390-64/swapcontext.S     |  3 +-
>  sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h |  4 ---
>  sysdeps/unix/sysv/linux/s390/s390-64/vfork.S  |  3 +-
>  sysdeps/unix/sysv/linux/s390/sysdep.h         | 32 ++-----------------
>  13 files changed, 46 insertions(+), 66 deletions(-)
> 
Committed


More information about the Libc-alpha mailing list