Commit-ID:  a8d03c3f300eefff3b5c14798409e4b43e37dd9b
Gitweb:     https://git.kernel.org/tip/a8d03c3f300eefff3b5c14798409e4b43e37dd9b
Author:     Andy Lutomirski <l...@kernel.org>
AuthorDate: Wed, 3 Jul 2019 13:34:02 -0700
Committer:  Thomas Gleixner <t...@linutronix.de>
CommitDate: Mon, 22 Jul 2019 10:31:22 +0200

x86/syscalls: Use the compat versions of rt_sigsuspend() and rt_sigprocmask()

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 <l...@kernel.org>
Signed-off-by: Thomas Gleixner <t...@linutronix.de>
Link: 
https://lkml.kernel.org/r/51643ac3157b5921eae0e172a8a0b1d953e68ebb.1562185330.git.l...@kernel.org

---
 arch/x86/entry/syscalls/syscall_32.tbl | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/entry/syscalls/syscall_32.tbl 
b/arch/x86/entry/syscalls/syscall_32.tbl
index c00019abd076..3fe02546aed3 100644
--- a/arch/x86/entry/syscalls/syscall_32.tbl
+++ b/arch/x86/entry/syscalls/syscall_32.tbl
@@ -186,11 +186,11 @@
 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

Reply via email to