x86/syscalls: Use the compat versions of rt_sigsuspend() and rt_sigprocmask()
authorAndy Lutomirski <luto@kernel.org>
Wed, 3 Jul 2019 20:34:02 +0000 (13:34 -0700)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 22 Jul 2019 08:31:22 +0000 (10:31 +0200)
I'm working on some code that detects at build time if there's a
COMPAT_SYSCALL_DEFINE() that is not referenced in the x86 syscall tables.
It catches three offenders: rt_sigsuspend(), rt_sigprocmask(), and
sendfile64().

For rt_sigsuspend() and rt_sigprocmask(), the only potential difference
between the native and compat versions is that the compat version converts
the sigset_t, but, on little endian architectures, the conversion is a
no-op.  This is why they both currently work on x86.

To make the code more consistent, and to make the upcoming patches work,
rewire x86 to use the compat vesions.

sendfile64() is more complicated, and will be addressed separately.

Signed-off-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/51643ac3157b5921eae0e172a8a0b1d953e68ebb.1562185330.git.luto@kernel.org
arch/x86/entry/syscalls/syscall_32.tbl

index c00019abd0769d60d7a142db83b611d076e9ab0b..3fe02546aed35ba16a6142bfd26ad4869c50e65f 100644 (file)
 172    i386    prctl                   sys_prctl                       __ia32_sys_prctl
 173    i386    rt_sigreturn            sys_rt_sigreturn                sys32_rt_sigreturn
 174    i386    rt_sigaction            sys_rt_sigaction                __ia32_compat_sys_rt_sigaction
-175    i386    rt_sigprocmask          sys_rt_sigprocmask              __ia32_sys_rt_sigprocmask
+175    i386    rt_sigprocmask          sys_rt_sigprocmask              __ia32_compat_sys_rt_sigprocmask
 176    i386    rt_sigpending           sys_rt_sigpending               __ia32_compat_sys_rt_sigpending
 177    i386    rt_sigtimedwait         sys_rt_sigtimedwait_time32      __ia32_compat_sys_rt_sigtimedwait_time32
 178    i386    rt_sigqueueinfo         sys_rt_sigqueueinfo             __ia32_compat_sys_rt_sigqueueinfo
-179    i386    rt_sigsuspend           sys_rt_sigsuspend               __ia32_sys_rt_sigsuspend
+179    i386    rt_sigsuspend           sys_rt_sigsuspend               __ia32_compat_sys_rt_sigsuspend
 180    i386    pread64                 sys_pread64                     __ia32_compat_sys_x86_pread
 181    i386    pwrite64                sys_pwrite64                    __ia32_compat_sys_x86_pwrite
 182    i386    chown                   sys_chown16                     __ia32_sys_chown16