syscalls/core, syscalls/x86: Clean up compat syscall stub naming convention
authorDominik Brodowski <linux@dominikbrodowski.net>
Mon, 9 Apr 2018 10:51:43 +0000 (12:51 +0200)
committerIngo Molnar <mingo@kernel.org>
Mon, 9 Apr 2018 14:47:28 +0000 (16:47 +0200)
Tidy the naming convention for compat syscall subs. Hints which describe
the purpose of the stub go in front and receive a double underscore to
denote that they are generated on-the-fly by the COMPAT_SYSCALL_DEFINEx()
macro.

For the generic case, this means:

t            kernel_waitid # common C function (see kernel/exit.c)

    __do_compat_sys_waitid # inlined helper doing the actual work
# (takes original parameters as declared)

T   __se_compat_sys_waitid # sign-extending C function calling inlined
# helper (takes parameters of type long,
# casts them to unsigned long and then to
# the declared type)

T        compat_sys_waitid      # alias to __se_compat_sys_waitid()
# (taking parameters as declared), to
# be included in syscall table

For x86, the naming is as follows:

t            kernel_waitid # common C function (see kernel/exit.c)

    __do_compat_sys_waitid # inlined helper doing the actual work
# (takes original parameters as declared)

t   __se_compat_sys_waitid      # sign-extending C function calling inlined
# helper (takes parameters of type long,
# casts them to unsigned long and then to
# the declared type)

T __ia32_compat_sys_waitid # IA32_EMULATION 32-bit-ptregs -> C stub,
# calls __se_compat_sys_waitid(); to be
# included in syscall table

T  __x32_compat_sys_waitid # x32 64-bit-ptregs -> C stub, calls
# __se_compat_sys_waitid(); to be included
# in syscall table

If only one of IA32_EMULATION and x32 is enabled, __se_compat_sys_waitid()
may be inlined into the stub __{ia32,x32}_compat_sys_waitid().

Suggested-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/20180409105145.5364-3-linux@dominikbrodowski.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Documentation/process/adding-syscalls.rst
arch/x86/entry/syscalls/syscall_32.tbl
arch/x86/entry/syscalls/syscall_64.tbl
arch/x86/include/asm/syscall_wrapper.h
arch/x86/include/asm/syscalls.h
include/linux/compat.h
scripts/bloat-o-meter

index 314c8bf6f2a2e0318a9c786e9aaa53d28ce7055a..0d4f29bc798bdc1cd68579494069c93b51e2fc04 100644 (file)
@@ -360,7 +360,7 @@ First, the entry in ``arch/x86/entry/syscalls/syscall_32.tbl`` gets an extra
 column to indicate that a 32-bit userspace program running on a 64-bit kernel
 should hit the compat entry point::
 
-    380   i386     xyzzy     sys_xyzzy    compat_sys_xyzzy
+    380   i386     xyzzy     sys_xyzzy    __ia32_compat_sys_xyzzy
 
 Second, you need to figure out what should happen for the x32 ABI version of
 the new system call.  There's a choice here: the layout of the arguments
@@ -373,7 +373,7 @@ the compatibility wrapper::
 
     333   64       xyzzy     sys_xyzzy
     ...
-    555   x32      xyzzy     compat_sys_xyzzy
+    555   x32      xyzzy     __x32_compat_sys_xyzzy
 
 If no pointers are involved, then it is preferable to re-use the 64-bit system
 call for the x32 ABI (and consequently the entry in
index 539df8f6d0e1f80cee2ae9112653356aa5e828f8..0e6cb1335db2ebac7fb9fb9c7f31c2d8837364fe 100644 (file)
@@ -4,7 +4,7 @@
 # The format is:
 # <number> <abi> <name> <entry point> <compat entry point>
 #
-# The __ia32_sys and __compat_sys_ia32 stubs are created on-the-fly for
+# The __ia32_sys and __ia32_compat_sys stubs are created on-the-fly for
 # sys_*() system calls and compat_sys_*() compat system calls if
 # IA32_EMULATION is defined, and expect struct pt_regs *regs as their only
 # parameter.
 2      i386    fork                    sys_fork
 3      i386    read                    sys_read                        __ia32_sys_read
 4      i386    write                   sys_write                       __ia32_sys_write
-5      i386    open                    sys_open                        __compat_sys_ia32_open
+5      i386    open                    sys_open                        __ia32_compat_sys_open
 6      i386    close                   sys_close                       __ia32_sys_close
 7      i386    waitpid                 sys_waitpid                     __ia32_sys_waitpid
 8      i386    creat                   sys_creat                       __ia32_sys_creat
 9      i386    link                    sys_link                        __ia32_sys_link
 10     i386    unlink                  sys_unlink                      __ia32_sys_unlink
-11     i386    execve                  sys_execve                      __compat_sys_ia32_execve
+11     i386    execve                  sys_execve                      __ia32_compat_sys_execve
 12     i386    chdir                   sys_chdir                       __ia32_sys_chdir
-13     i386    time                    sys_time                        __compat_sys_ia32_time
+13     i386    time                    sys_time                        __ia32_compat_sys_time
 14     i386    mknod                   sys_mknod                       __ia32_sys_mknod
 15     i386    chmod                   sys_chmod                       __ia32_sys_chmod
 16     i386    lchown                  sys_lchown16                    __ia32_sys_lchown16
 17     i386    break
 18     i386    oldstat                 sys_stat                        __ia32_sys_stat
-19     i386    lseek                   sys_lseek                       __compat_sys_ia32_lseek
+19     i386    lseek                   sys_lseek                       __ia32_compat_sys_lseek
 20     i386    getpid                  sys_getpid
-21     i386    mount                   sys_mount                       __compat_sys_ia32_mount
+21     i386    mount                   sys_mount                       __ia32_compat_sys_mount
 22     i386    umount                  sys_oldumount                   __ia32_sys_oldumount
 23     i386    setuid                  sys_setuid16                    __ia32_sys_setuid16
 24     i386    getuid                  sys_getuid16
-25     i386    stime                   sys_stime                       __compat_sys_ia32_stime
-26     i386    ptrace                  sys_ptrace                      __compat_sys_ia32_ptrace
+25     i386    stime                   sys_stime                       __ia32_compat_sys_stime
+26     i386    ptrace                  sys_ptrace                      __ia32_compat_sys_ptrace
 27     i386    alarm                   sys_alarm                       __ia32_sys_alarm
 28     i386    oldfstat                sys_fstat                       __ia32_sys_fstat
 29     i386    pause                   sys_pause
-30     i386    utime                   sys_utime                       __compat_sys_ia32_utime
+30     i386    utime                   sys_utime                       __ia32_compat_sys_utime
 31     i386    stty
 32     i386    gtty
 33     i386    access                  sys_access                      __ia32_sys_access
@@ -54,7 +54,7 @@
 40     i386    rmdir                   sys_rmdir                       __ia32_sys_rmdir
 41     i386    dup                     sys_dup                         __ia32_sys_dup
 42     i386    pipe                    sys_pipe                        __ia32_sys_pipe
-43     i386    times                   sys_times                       __compat_sys_ia32_times
+43     i386    times                   sys_times                       __ia32_compat_sys_times
 44     i386    prof
 45     i386    brk                     sys_brk                         __ia32_sys_brk
 46     i386    setgid                  sys_setgid16                    __ia32_sys_setgid16
 51     i386    acct                    sys_acct                        __ia32_sys_acct
 52     i386    umount2                 sys_umount                      __ia32_sys_umount
 53     i386    lock
-54     i386    ioctl                   sys_ioctl                       __compat_sys_ia32_ioctl
-55     i386    fcntl                   sys_fcntl                       __compat_sys_ia32_fcntl64
+54     i386    ioctl                   sys_ioctl                       __ia32_compat_sys_ioctl
+55     i386    fcntl                   sys_fcntl                       __ia32_compat_sys_fcntl64
 56     i386    mpx
 57     i386    setpgid                 sys_setpgid                     __ia32_sys_setpgid
 58     i386    ulimit
 59     i386    oldolduname             sys_olduname                    __ia32_sys_olduname
 60     i386    umask                   sys_umask                       __ia32_sys_umask
 61     i386    chroot                  sys_chroot                      __ia32_sys_chroot
-62     i386    ustat                   sys_ustat                       __compat_sys_ia32_ustat
+62     i386    ustat                   sys_ustat                       __ia32_compat_sys_ustat
 63     i386    dup2                    sys_dup2                        __ia32_sys_dup2
 64     i386    getppid                 sys_getppid
 65     i386    getpgrp                 sys_getpgrp
 66     i386    setsid                  sys_setsid
-67     i386    sigaction               sys_sigaction                   __compat_sys_ia32_sigaction
+67     i386    sigaction               sys_sigaction                   __ia32_compat_sys_sigaction
 68     i386    sgetmask                sys_sgetmask
 69     i386    ssetmask                sys_ssetmask                    __ia32_sys_ssetmask
 70     i386    setreuid                sys_setreuid16                  __ia32_sys_setreuid16
 71     i386    setregid                sys_setregid16                  __ia32_sys_setregid16
 72     i386    sigsuspend              sys_sigsuspend                  __ia32_sys_sigsuspend
-73     i386    sigpending              sys_sigpending                  __compat_sys_ia32_sigpending
+73     i386    sigpending              sys_sigpending                  __ia32_compat_sys_sigpending
 74     i386    sethostname             sys_sethostname                 __ia32_sys_sethostname
-75     i386    setrlimit               sys_setrlimit                   __compat_sys_ia32_setrlimit
-76     i386    getrlimit               sys_old_getrlimit               __compat_sys_ia32_old_getrlimit
-77     i386    getrusage               sys_getrusage                   __compat_sys_ia32_getrusage
-78     i386    gettimeofday            sys_gettimeofday                __compat_sys_ia32_gettimeofday
-79     i386    settimeofday            sys_settimeofday                __compat_sys_ia32_settimeofday
+75     i386    setrlimit               sys_setrlimit                   __ia32_compat_sys_setrlimit
+76     i386    getrlimit               sys_old_getrlimit               __ia32_compat_sys_old_getrlimit
+77     i386    getrusage               sys_getrusage                   __ia32_compat_sys_getrusage
+78     i386    gettimeofday            sys_gettimeofday                __ia32_compat_sys_gettimeofday
+79     i386    settimeofday            sys_settimeofday                __ia32_compat_sys_settimeofday
 80     i386    getgroups               sys_getgroups16                 __ia32_sys_getgroups16
 81     i386    setgroups               sys_setgroups16                 __ia32_sys_setgroups16
-82     i386    select                  sys_old_select                  __compat_sys_ia32_old_select
+82     i386    select                  sys_old_select                  __ia32_compat_sys_old_select
 83     i386    symlink                 sys_symlink                     __ia32_sys_symlink
 84     i386    oldlstat                sys_lstat                       __ia32_sys_lstat
 85     i386    readlink                sys_readlink                    __ia32_sys_readlink
 86     i386    uselib                  sys_uselib                      __ia32_sys_uselib
 87     i386    swapon                  sys_swapon                      __ia32_sys_swapon
 88     i386    reboot                  sys_reboot                      __ia32_sys_reboot
-89     i386    readdir                 sys_old_readdir                 __compat_sys_ia32_old_readdir
-90     i386    mmap                    sys_old_mmap                    __compat_sys_ia32_x86_mmap
+89     i386    readdir                 sys_old_readdir                 __ia32_compat_sys_old_readdir
+90     i386    mmap                    sys_old_mmap                    __ia32_compat_sys_x86_mmap
 91     i386    munmap                  sys_munmap                      __ia32_sys_munmap
-92     i386    truncate                sys_truncate                    __compat_sys_ia32_truncate
-93     i386    ftruncate               sys_ftruncate                   __compat_sys_ia32_ftruncate
+92     i386    truncate                sys_truncate                    __ia32_compat_sys_truncate
+93     i386    ftruncate               sys_ftruncate                   __ia32_compat_sys_ftruncate
 94     i386    fchmod                  sys_fchmod                      __ia32_sys_fchmod
 95     i386    fchown                  sys_fchown16                    __ia32_sys_fchown16
 96     i386    getpriority             sys_getpriority                 __ia32_sys_getpriority
 97     i386    setpriority             sys_setpriority                 __ia32_sys_setpriority
 98     i386    profil
-99     i386    statfs                  sys_statfs                      __compat_sys_ia32_statfs
-100    i386    fstatfs                 sys_fstatfs                     __compat_sys_ia32_fstatfs
+99     i386    statfs                  sys_statfs                      __ia32_compat_sys_statfs
+100    i386    fstatfs                 sys_fstatfs                     __ia32_compat_sys_fstatfs
 101    i386    ioperm                  sys_ioperm                      __ia32_sys_ioperm
-102    i386    socketcall              sys_socketcall                  __compat_sys_ia32_socketcall
+102    i386    socketcall              sys_socketcall                  __ia32_compat_sys_socketcall
 103    i386    syslog                  sys_syslog                      __ia32_sys_syslog
-104    i386    setitimer               sys_setitimer                   __compat_sys_ia32_setitimer
-105    i386    getitimer               sys_getitimer                   __compat_sys_ia32_getitimer
-106    i386    stat                    sys_newstat                     __compat_sys_ia32_newstat
-107    i386    lstat                   sys_newlstat                    __compat_sys_ia32_newlstat
-108    i386    fstat                   sys_newfstat                    __compat_sys_ia32_newfstat
+104    i386    setitimer               sys_setitimer                   __ia32_compat_sys_setitimer
+105    i386    getitimer               sys_getitimer                   __ia32_compat_sys_getitimer
+106    i386    stat                    sys_newstat                     __ia32_compat_sys_newstat
+107    i386    lstat                   sys_newlstat                    __ia32_compat_sys_newlstat
+108    i386    fstat                   sys_newfstat                    __ia32_compat_sys_newfstat
 109    i386    olduname                sys_uname                       __ia32_sys_uname
 110    i386    iopl                    sys_iopl                        __ia32_sys_iopl
 111    i386    vhangup                 sys_vhangup
 112    i386    idle
 113    i386    vm86old                 sys_vm86old                     sys_ni_syscall
-114    i386    wait4                   sys_wait4                       __compat_sys_ia32_wait4
+114    i386    wait4                   sys_wait4                       __ia32_compat_sys_wait4
 115    i386    swapoff                 sys_swapoff                     __ia32_sys_swapoff
-116    i386    sysinfo                 sys_sysinfo                     __compat_sys_ia32_sysinfo
-117    i386    ipc                     sys_ipc                         __compat_sys_ia32_ipc
+116    i386    sysinfo                 sys_sysinfo                     __ia32_compat_sys_sysinfo
+117    i386    ipc                     sys_ipc                         __ia32_compat_sys_ipc
 118    i386    fsync                   sys_fsync                       __ia32_sys_fsync
 119    i386    sigreturn               sys_sigreturn                   sys32_sigreturn
-120    i386    clone                   sys_clone                       __compat_sys_ia32_x86_clone
+120    i386    clone                   sys_clone                       __ia32_compat_sys_x86_clone
 121    i386    setdomainname           sys_setdomainname               __ia32_sys_setdomainname
 122    i386    uname                   sys_newuname                    __ia32_sys_newuname
 123    i386    modify_ldt              sys_modify_ldt                  __ia32_sys_modify_ldt
-124    i386    adjtimex                sys_adjtimex                    __compat_sys_ia32_adjtimex
+124    i386    adjtimex                sys_adjtimex                    __ia32_compat_sys_adjtimex
 125    i386    mprotect                sys_mprotect                    __ia32_sys_mprotect
-126    i386    sigprocmask             sys_sigprocmask                 __compat_sys_ia32_sigprocmask
+126    i386    sigprocmask             sys_sigprocmask                 __ia32_compat_sys_sigprocmask
 127    i386    create_module
 128    i386    init_module             sys_init_module                 __ia32_sys_init_module
 129    i386    delete_module           sys_delete_module               __ia32_sys_delete_module
 130    i386    get_kernel_syms
-131    i386    quotactl                sys_quotactl                    __compat_sys_ia32_quotactl32
+131    i386    quotactl                sys_quotactl                    __ia32_compat_sys_quotactl32
 132    i386    getpgid                 sys_getpgid                     __ia32_sys_getpgid
 133    i386    fchdir                  sys_fchdir                      __ia32_sys_fchdir
 134    i386    bdflush                 sys_bdflush                     __ia32_sys_bdflush
 138    i386    setfsuid                sys_setfsuid16                  __ia32_sys_setfsuid16
 139    i386    setfsgid                sys_setfsgid16                  __ia32_sys_setfsgid16
 140    i386    _llseek                 sys_llseek                      __ia32_sys_llseek
-141    i386    getdents                sys_getdents                    __compat_sys_ia32_getdents
-142    i386    _newselect              sys_select                      __compat_sys_ia32_select
+141    i386    getdents                sys_getdents                    __ia32_compat_sys_getdents
+142    i386    _newselect              sys_select                      __ia32_compat_sys_select
 143    i386    flock                   sys_flock                       __ia32_sys_flock
 144    i386    msync                   sys_msync                       __ia32_sys_msync
-145    i386    readv                   sys_readv                       __compat_sys_ia32_readv
-146    i386    writev                  sys_writev                      __compat_sys_ia32_writev
+145    i386    readv                   sys_readv                       __ia32_compat_sys_readv
+146    i386    writev                  sys_writev                      __ia32_compat_sys_writev
 147    i386    getsid                  sys_getsid                      __ia32_sys_getsid
 148    i386    fdatasync               sys_fdatasync                   __ia32_sys_fdatasync
-149    i386    _sysctl                 sys_sysctl                      __compat_sys_ia32_sysctl
+149    i386    _sysctl                 sys_sysctl                      __ia32_compat_sys_sysctl
 150    i386    mlock                   sys_mlock                       __ia32_sys_mlock
 151    i386    munlock                 sys_munlock                     __ia32_sys_munlock
 152    i386    mlockall                sys_mlockall                    __ia32_sys_mlockall
 158    i386    sched_yield             sys_sched_yield
 159    i386    sched_get_priority_max  sys_sched_get_priority_max      __ia32_sys_sched_get_priority_max
 160    i386    sched_get_priority_min  sys_sched_get_priority_min      __ia32_sys_sched_get_priority_min
-161    i386    sched_rr_get_interval   sys_sched_rr_get_interval       __compat_sys_ia32_sched_rr_get_interval
-162    i386    nanosleep               sys_nanosleep                   __compat_sys_ia32_nanosleep
+161    i386    sched_rr_get_interval   sys_sched_rr_get_interval       __ia32_compat_sys_sched_rr_get_interval
+162    i386    nanosleep               sys_nanosleep                   __ia32_compat_sys_nanosleep
 163    i386    mremap                  sys_mremap                      __ia32_sys_mremap
 164    i386    setresuid               sys_setresuid16                 __ia32_sys_setresuid16
 165    i386    getresuid               sys_getresuid16                 __ia32_sys_getresuid16
 171    i386    getresgid               sys_getresgid16                 __ia32_sys_getresgid16
 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                __compat_sys_ia32_rt_sigaction
+174    i386    rt_sigaction            sys_rt_sigaction                __ia32_compat_sys_rt_sigaction
 175    i386    rt_sigprocmask          sys_rt_sigprocmask              __ia32_sys_rt_sigprocmask
-176    i386    rt_sigpending           sys_rt_sigpending               __compat_sys_ia32_rt_sigpending
-177    i386    rt_sigtimedwait         sys_rt_sigtimedwait             __compat_sys_ia32_rt_sigtimedwait
-178    i386    rt_sigqueueinfo         sys_rt_sigqueueinfo             __compat_sys_ia32_rt_sigqueueinfo
+176    i386    rt_sigpending           sys_rt_sigpending               __ia32_compat_sys_rt_sigpending
+177    i386    rt_sigtimedwait         sys_rt_sigtimedwait             __ia32_compat_sys_rt_sigtimedwait
+178    i386    rt_sigqueueinfo         sys_rt_sigqueueinfo             __ia32_compat_sys_rt_sigqueueinfo
 179    i386    rt_sigsuspend           sys_rt_sigsuspend               __ia32_sys_rt_sigsuspend
-180    i386    pread64                 sys_pread64                     __compat_sys_ia32_x86_pread
-181    i386    pwrite64                sys_pwrite64                    __compat_sys_ia32_x86_pwrite
+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
 183    i386    getcwd                  sys_getcwd                      __ia32_sys_getcwd
 184    i386    capget                  sys_capget                      __ia32_sys_capget
 185    i386    capset                  sys_capset                      __ia32_sys_capset
-186    i386    sigaltstack             sys_sigaltstack                 __compat_sys_ia32_sigaltstack
-187    i386    sendfile                sys_sendfile                    __compat_sys_ia32_sendfile
+186    i386    sigaltstack             sys_sigaltstack                 __ia32_compat_sys_sigaltstack
+187    i386    sendfile                sys_sendfile                    __ia32_compat_sys_sendfile
 188    i386    getpmsg
 189    i386    putpmsg
 190    i386    vfork                   sys_vfork
-191    i386    ugetrlimit              sys_getrlimit                   __compat_sys_ia32_getrlimit
+191    i386    ugetrlimit              sys_getrlimit                   __ia32_compat_sys_getrlimit
 192    i386    mmap2                   sys_mmap_pgoff                  __ia32_sys_mmap_pgoff
-193    i386    truncate64              sys_truncate64                  __compat_sys_ia32_x86_truncate64
-194    i386    ftruncate64             sys_ftruncate64                 __compat_sys_ia32_x86_ftruncate64
-195    i386    stat64                  sys_stat64                      __compat_sys_ia32_x86_stat64
-196    i386    lstat64                 sys_lstat64                     __compat_sys_ia32_x86_lstat64
-197    i386    fstat64                 sys_fstat64                     __compat_sys_ia32_x86_fstat64
+193    i386    truncate64              sys_truncate64                  __ia32_compat_sys_x86_truncate64
+194    i386    ftruncate64             sys_ftruncate64                 __ia32_compat_sys_x86_ftruncate64
+195    i386    stat64                  sys_stat64                      __ia32_compat_sys_x86_stat64
+196    i386    lstat64                 sys_lstat64                     __ia32_compat_sys_x86_lstat64
+197    i386    fstat64                 sys_fstat64                     __ia32_compat_sys_x86_fstat64
 198    i386    lchown32                sys_lchown                      __ia32_sys_lchown
 199    i386    getuid32                sys_getuid
 200    i386    getgid32                sys_getgid
 218    i386    mincore                 sys_mincore                     __ia32_sys_mincore
 219    i386    madvise                 sys_madvise                     __ia32_sys_madvise
 220    i386    getdents64              sys_getdents64                  __ia32_sys_getdents64
-221    i386    fcntl64                 sys_fcntl64                     __compat_sys_ia32_fcntl64
+221    i386    fcntl64                 sys_fcntl64                     __ia32_compat_sys_fcntl64
 # 222 is unused
 # 223 is unused
 224    i386    gettid                  sys_gettid
-225    i386    readahead               sys_readahead                   __compat_sys_ia32_x86_readahead
+225    i386    readahead               sys_readahead                   __ia32_compat_sys_x86_readahead
 226    i386    setxattr                sys_setxattr                    __ia32_sys_setxattr
 227    i386    lsetxattr               sys_lsetxattr                   __ia32_sys_lsetxattr
 228    i386    fsetxattr               sys_fsetxattr                   __ia32_sys_fsetxattr
 237    i386    fremovexattr            sys_fremovexattr                __ia32_sys_fremovexattr
 238    i386    tkill                   sys_tkill                       __ia32_sys_tkill
 239    i386    sendfile64              sys_sendfile64                  __ia32_sys_sendfile64
-240    i386    futex                   sys_futex                       __compat_sys_ia32_futex
-241    i386    sched_setaffinity       sys_sched_setaffinity           __compat_sys_ia32_sched_setaffinity
-242    i386    sched_getaffinity       sys_sched_getaffinity           __compat_sys_ia32_sched_getaffinity
+240    i386    futex                   sys_futex                       __ia32_compat_sys_futex
+241    i386    sched_setaffinity       sys_sched_setaffinity           __ia32_compat_sys_sched_setaffinity
+242    i386    sched_getaffinity       sys_sched_getaffinity           __ia32_compat_sys_sched_getaffinity
 243    i386    set_thread_area         sys_set_thread_area             __ia32_sys_set_thread_area
 244    i386    get_thread_area         sys_get_thread_area             __ia32_sys_get_thread_area
-245    i386    io_setup                sys_io_setup                    __compat_sys_ia32_io_setup
+245    i386    io_setup                sys_io_setup                    __ia32_compat_sys_io_setup
 246    i386    io_destroy              sys_io_destroy                  __ia32_sys_io_destroy
-247    i386    io_getevents            sys_io_getevents                __compat_sys_ia32_io_getevents
-248    i386    io_submit               sys_io_submit                   __compat_sys_ia32_io_submit
+247    i386    io_getevents            sys_io_getevents                __ia32_compat_sys_io_getevents
+248    i386    io_submit               sys_io_submit                   __ia32_compat_sys_io_submit
 249    i386    io_cancel               sys_io_cancel                   __ia32_sys_io_cancel
-250    i386    fadvise64               sys_fadvise64                   __compat_sys_ia32_x86_fadvise64
+250    i386    fadvise64               sys_fadvise64                   __ia32_compat_sys_x86_fadvise64
 # 251 is available for reuse (was briefly sys_set_zone_reclaim)
 252    i386    exit_group              sys_exit_group                  __ia32_sys_exit_group
-253    i386    lookup_dcookie          sys_lookup_dcookie              __compat_sys_ia32_lookup_dcookie
+253    i386    lookup_dcookie          sys_lookup_dcookie              __ia32_compat_sys_lookup_dcookie
 254    i386    epoll_create            sys_epoll_create                __ia32_sys_epoll_create
 255    i386    epoll_ctl               sys_epoll_ctl                   __ia32_sys_epoll_ctl
 256    i386    epoll_wait              sys_epoll_wait                  __ia32_sys_epoll_wait
 257    i386    remap_file_pages        sys_remap_file_pages            __ia32_sys_remap_file_pages
 258    i386    set_tid_address         sys_set_tid_address             __ia32_sys_set_tid_address
-259    i386    timer_create            sys_timer_create                __compat_sys_ia32_timer_create
-260    i386    timer_settime           sys_timer_settime               __compat_sys_ia32_timer_settime
-261    i386    timer_gettime           sys_timer_gettime               __compat_sys_ia32_timer_gettime
+259    i386    timer_create            sys_timer_create                __ia32_compat_sys_timer_create
+260    i386    timer_settime           sys_timer_settime               __ia32_compat_sys_timer_settime
+261    i386    timer_gettime           sys_timer_gettime               __ia32_compat_sys_timer_gettime
 262    i386    timer_getoverrun        sys_timer_getoverrun            __ia32_sys_timer_getoverrun
 263    i386    timer_delete            sys_timer_delete                __ia32_sys_timer_delete
-264    i386    clock_settime           sys_clock_settime               __compat_sys_ia32_clock_settime
-265    i386    clock_gettime           sys_clock_gettime               __compat_sys_ia32_clock_gettime
-266    i386    clock_getres            sys_clock_getres                __compat_sys_ia32_clock_getres
-267    i386    clock_nanosleep         sys_clock_nanosleep             __compat_sys_ia32_clock_nanosleep
-268    i386    statfs64                sys_statfs64                    __compat_sys_ia32_statfs64
-269    i386    fstatfs64               sys_fstatfs64                   __compat_sys_ia32_fstatfs64
+264    i386    clock_settime           sys_clock_settime               __ia32_compat_sys_clock_settime
+265    i386    clock_gettime           sys_clock_gettime               __ia32_compat_sys_clock_gettime
+266    i386    clock_getres            sys_clock_getres                __ia32_compat_sys_clock_getres
+267    i386    clock_nanosleep         sys_clock_nanosleep             __ia32_compat_sys_clock_nanosleep
+268    i386    statfs64                sys_statfs64                    __ia32_compat_sys_statfs64
+269    i386    fstatfs64               sys_fstatfs64                   __ia32_compat_sys_fstatfs64
 270    i386    tgkill                  sys_tgkill                      __ia32_sys_tgkill
-271    i386    utimes                  sys_utimes                      __compat_sys_ia32_utimes
-272    i386    fadvise64_64            sys_fadvise64_64                __compat_sys_ia32_x86_fadvise64_64
+271    i386    utimes                  sys_utimes                      __ia32_compat_sys_utimes
+272    i386    fadvise64_64            sys_fadvise64_64                __ia32_compat_sys_x86_fadvise64_64
 273    i386    vserver
 274    i386    mbind                   sys_mbind                       __ia32_sys_mbind
-275    i386    get_mempolicy           sys_get_mempolicy               __compat_sys_ia32_get_mempolicy
+275    i386    get_mempolicy           sys_get_mempolicy               __ia32_compat_sys_get_mempolicy
 276    i386    set_mempolicy           sys_set_mempolicy               __ia32_sys_set_mempolicy
-277    i386    mq_open                 sys_mq_open                     __compat_sys_ia32_mq_open
+277    i386    mq_open                 sys_mq_open                     __ia32_compat_sys_mq_open
 278    i386    mq_unlink               sys_mq_unlink                   __ia32_sys_mq_unlink
-279    i386    mq_timedsend            sys_mq_timedsend                __compat_sys_ia32_mq_timedsend
-280    i386    mq_timedreceive         sys_mq_timedreceive             __compat_sys_ia32_mq_timedreceive
-281    i386    mq_notify               sys_mq_notify                   __compat_sys_ia32_mq_notify
-282    i386    mq_getsetattr           sys_mq_getsetattr               __compat_sys_ia32_mq_getsetattr
-283    i386    kexec_load              sys_kexec_load                  __compat_sys_ia32_kexec_load
-284    i386    waitid                  sys_waitid                      __compat_sys_ia32_waitid
+279    i386    mq_timedsend            sys_mq_timedsend                __ia32_compat_sys_mq_timedsend
+280    i386    mq_timedreceive         sys_mq_timedreceive             __ia32_compat_sys_mq_timedreceive
+281    i386    mq_notify               sys_mq_notify                   __ia32_compat_sys_mq_notify
+282    i386    mq_getsetattr           sys_mq_getsetattr               __ia32_compat_sys_mq_getsetattr
+283    i386    kexec_load              sys_kexec_load                  __ia32_compat_sys_kexec_load
+284    i386    waitid                  sys_waitid                      __ia32_compat_sys_waitid
 # 285 sys_setaltroot
 286    i386    add_key                 sys_add_key                     __ia32_sys_add_key
 287    i386    request_key             sys_request_key                 __ia32_sys_request_key
-288    i386    keyctl                  sys_keyctl                      __compat_sys_ia32_keyctl
+288    i386    keyctl                  sys_keyctl                      __ia32_compat_sys_keyctl
 289    i386    ioprio_set              sys_ioprio_set                  __ia32_sys_ioprio_set
 290    i386    ioprio_get              sys_ioprio_get                  __ia32_sys_ioprio_get
 291    i386    inotify_init            sys_inotify_init
 292    i386    inotify_add_watch       sys_inotify_add_watch           __ia32_sys_inotify_add_watch
 293    i386    inotify_rm_watch        sys_inotify_rm_watch            __ia32_sys_inotify_rm_watch
 294    i386    migrate_pages           sys_migrate_pages               __ia32_sys_migrate_pages
-295    i386    openat                  sys_openat                      __compat_sys_ia32_openat
+295    i386    openat                  sys_openat                      __ia32_compat_sys_openat
 296    i386    mkdirat                 sys_mkdirat                     __ia32_sys_mkdirat
 297    i386    mknodat                 sys_mknodat                     __ia32_sys_mknodat
 298    i386    fchownat                sys_fchownat                    __ia32_sys_fchownat
-299    i386    futimesat               sys_futimesat                   __compat_sys_ia32_futimesat
-300    i386    fstatat64               sys_fstatat64                   __compat_sys_ia32_x86_fstatat
+299    i386    futimesat               sys_futimesat                   __ia32_compat_sys_futimesat
+300    i386    fstatat64               sys_fstatat64                   __ia32_compat_sys_x86_fstatat
 301    i386    unlinkat                sys_unlinkat                    __ia32_sys_unlinkat
 302    i386    renameat                sys_renameat                    __ia32_sys_renameat
 303    i386    linkat                  sys_linkat                      __ia32_sys_linkat
 305    i386    readlinkat              sys_readlinkat                  __ia32_sys_readlinkat
 306    i386    fchmodat                sys_fchmodat                    __ia32_sys_fchmodat
 307    i386    faccessat               sys_faccessat                   __ia32_sys_faccessat
-308    i386    pselect6                sys_pselect6                    __compat_sys_ia32_pselect6
-309    i386    ppoll                   sys_ppoll                       __compat_sys_ia32_ppoll
+308    i386    pselect6                sys_pselect6                    __ia32_compat_sys_pselect6
+309    i386    ppoll                   sys_ppoll                       __ia32_compat_sys_ppoll
 310    i386    unshare                 sys_unshare                     __ia32_sys_unshare
-311    i386    set_robust_list         sys_set_robust_list             __compat_sys_ia32_set_robust_list
-312    i386    get_robust_list         sys_get_robust_list             __compat_sys_ia32_get_robust_list
+311    i386    set_robust_list         sys_set_robust_list             __ia32_compat_sys_set_robust_list
+312    i386    get_robust_list         sys_get_robust_list             __ia32_compat_sys_get_robust_list
 313    i386    splice                  sys_splice                      __ia32_sys_splice
-314    i386    sync_file_range         sys_sync_file_range             __compat_sys_ia32_x86_sync_file_range
+314    i386    sync_file_range         sys_sync_file_range             __ia32_compat_sys_x86_sync_file_range
 315    i386    tee                     sys_tee                         __ia32_sys_tee
-316    i386    vmsplice                sys_vmsplice                    __compat_sys_ia32_vmsplice
-317    i386    move_pages              sys_move_pages                  __compat_sys_ia32_move_pages
+316    i386    vmsplice                sys_vmsplice                    __ia32_compat_sys_vmsplice
+317    i386    move_pages              sys_move_pages                  __ia32_compat_sys_move_pages
 318    i386    getcpu                  sys_getcpu                      __ia32_sys_getcpu
 319    i386    epoll_pwait             sys_epoll_pwait                 __ia32_sys_epoll_pwait
-320    i386    utimensat               sys_utimensat                   __compat_sys_ia32_utimensat
-321    i386    signalfd                sys_signalfd                    __compat_sys_ia32_signalfd
+320    i386    utimensat               sys_utimensat                   __ia32_compat_sys_utimensat
+321    i386    signalfd                sys_signalfd                    __ia32_compat_sys_signalfd
 322    i386    timerfd_create          sys_timerfd_create              __ia32_sys_timerfd_create
 323    i386    eventfd                 sys_eventfd                     __ia32_sys_eventfd
-324    i386    fallocate               sys_fallocate                   __compat_sys_ia32_x86_fallocate
-325    i386    timerfd_settime         sys_timerfd_settime             __compat_sys_ia32_timerfd_settime
-326    i386    timerfd_gettime         sys_timerfd_gettime             __compat_sys_ia32_timerfd_gettime
-327    i386    signalfd4               sys_signalfd4                   __compat_sys_ia32_signalfd4
+324    i386    fallocate               sys_fallocate                   __ia32_compat_sys_x86_fallocate
+325    i386    timerfd_settime         sys_timerfd_settime             __ia32_compat_sys_timerfd_settime
+326    i386    timerfd_gettime         sys_timerfd_gettime             __ia32_compat_sys_timerfd_gettime
+327    i386    signalfd4               sys_signalfd4                   __ia32_compat_sys_signalfd4
 328    i386    eventfd2                sys_eventfd2                    __ia32_sys_eventfd2
 329    i386    epoll_create1           sys_epoll_create1               __ia32_sys_epoll_create1
 330    i386    dup3                    sys_dup3                        __ia32_sys_dup3
 331    i386    pipe2                   sys_pipe2                       __ia32_sys_pipe2
 332    i386    inotify_init1           sys_inotify_init1               __ia32_sys_inotify_init1
-333    i386    preadv                  sys_preadv                      __compat_sys_ia32_preadv
-334    i386    pwritev                 sys_pwritev                     __compat_sys_ia32_pwritev
-335    i386    rt_tgsigqueueinfo       sys_rt_tgsigqueueinfo           __compat_sys_ia32_rt_tgsigqueueinfo
+333    i386    preadv                  sys_preadv                      __ia32_compat_sys_preadv
+334    i386    pwritev                 sys_pwritev                     __ia32_compat_sys_pwritev
+335    i386    rt_tgsigqueueinfo       sys_rt_tgsigqueueinfo           __ia32_compat_sys_rt_tgsigqueueinfo
 336    i386    perf_event_open         sys_perf_event_open             __ia32_sys_perf_event_open
-337    i386    recvmmsg                sys_recvmmsg                    __compat_sys_ia32_recvmmsg
+337    i386    recvmmsg                sys_recvmmsg                    __ia32_compat_sys_recvmmsg
 338    i386    fanotify_init           sys_fanotify_init               __ia32_sys_fanotify_init
-339    i386    fanotify_mark           sys_fanotify_mark               __compat_sys_ia32_fanotify_mark
+339    i386    fanotify_mark           sys_fanotify_mark               __ia32_compat_sys_fanotify_mark
 340    i386    prlimit64               sys_prlimit64                   __ia32_sys_prlimit64
 341    i386    name_to_handle_at       sys_name_to_handle_at           __ia32_sys_name_to_handle_at
-342    i386    open_by_handle_at       sys_open_by_handle_at           __compat_sys_ia32_open_by_handle_at
-343    i386    clock_adjtime           sys_clock_adjtime               __compat_sys_ia32_clock_adjtime
+342    i386    open_by_handle_at       sys_open_by_handle_at           __ia32_compat_sys_open_by_handle_at
+343    i386    clock_adjtime           sys_clock_adjtime               __ia32_compat_sys_clock_adjtime
 344    i386    syncfs                  sys_syncfs                      __ia32_sys_syncfs
-345    i386    sendmmsg                sys_sendmmsg                    __compat_sys_ia32_sendmmsg
+345    i386    sendmmsg                sys_sendmmsg                    __ia32_compat_sys_sendmmsg
 346    i386    setns                   sys_setns                       __ia32_sys_setns
-347    i386    process_vm_readv        sys_process_vm_readv            __compat_sys_ia32_process_vm_readv
-348    i386    process_vm_writev       sys_process_vm_writev           __compat_sys_ia32_process_vm_writev
+347    i386    process_vm_readv        sys_process_vm_readv            __ia32_compat_sys_process_vm_readv
+348    i386    process_vm_writev       sys_process_vm_writev           __ia32_compat_sys_process_vm_writev
 349    i386    kcmp                    sys_kcmp                        __ia32_sys_kcmp
 350    i386    finit_module            sys_finit_module                __ia32_sys_finit_module
 351    i386    sched_setattr           sys_sched_setattr               __ia32_sys_sched_setattr
 355    i386    getrandom               sys_getrandom                   __ia32_sys_getrandom
 356    i386    memfd_create            sys_memfd_create                __ia32_sys_memfd_create
 357    i386    bpf                     sys_bpf                         __ia32_sys_bpf
-358    i386    execveat                sys_execveat                    __compat_sys_ia32_execveat
+358    i386    execveat                sys_execveat                    __ia32_compat_sys_execveat
 359    i386    socket                  sys_socket                      __ia32_sys_socket
 360    i386    socketpair              sys_socketpair                  __ia32_sys_socketpair
 361    i386    bind                    sys_bind                        __ia32_sys_bind
 362    i386    connect                 sys_connect                     __ia32_sys_connect
 363    i386    listen                  sys_listen                      __ia32_sys_listen
 364    i386    accept4                 sys_accept4                     __ia32_sys_accept4
-365    i386    getsockopt              sys_getsockopt                  __compat_sys_ia32_getsockopt
-366    i386    setsockopt              sys_setsockopt                  __compat_sys_ia32_setsockopt
+365    i386    getsockopt              sys_getsockopt                  __ia32_compat_sys_getsockopt
+366    i386    setsockopt              sys_setsockopt                  __ia32_compat_sys_setsockopt
 367    i386    getsockname             sys_getsockname                 __ia32_sys_getsockname
 368    i386    getpeername             sys_getpeername                 __ia32_sys_getpeername
 369    i386    sendto                  sys_sendto                      __ia32_sys_sendto
-370    i386    sendmsg                 sys_sendmsg                     __compat_sys_ia32_sendmsg
-371    i386    recvfrom                sys_recvfrom                    __compat_sys_ia32_recvfrom
-372    i386    recvmsg                 sys_recvmsg                     __compat_sys_ia32_recvmsg
+370    i386    sendmsg                 sys_sendmsg                     __ia32_compat_sys_sendmsg
+371    i386    recvfrom                sys_recvfrom                    __ia32_compat_sys_recvfrom
+372    i386    recvmsg                 sys_recvmsg                     __ia32_compat_sys_recvmsg
 373    i386    shutdown                sys_shutdown                    __ia32_sys_shutdown
 374    i386    userfaultfd             sys_userfaultfd                 __ia32_sys_userfaultfd
 375    i386    membarrier              sys_membarrier                  __ia32_sys_membarrier
 376    i386    mlock2                  sys_mlock2                      __ia32_sys_mlock2
 377    i386    copy_file_range         sys_copy_file_range             __ia32_sys_copy_file_range
-378    i386    preadv2                 sys_preadv2                     __compat_sys_ia32_preadv2
-379    i386    pwritev2                sys_pwritev2                    __compat_sys_ia32_pwritev2
+378    i386    preadv2                 sys_preadv2                     __ia32_compat_sys_preadv2
+379    i386    pwritev2                sys_pwritev2                    __ia32_compat_sys_pwritev2
 380    i386    pkey_mprotect           sys_pkey_mprotect               __ia32_sys_pkey_mprotect
 381    i386    pkey_alloc              sys_pkey_alloc                  __ia32_sys_pkey_alloc
 382    i386    pkey_free               sys_pkey_free                   __ia32_sys_pkey_free
 383    i386    statx                   sys_statx                       __ia32_sys_statx
-384    i386    arch_prctl              sys_arch_prctl                  __compat_sys_ia32_arch_prctl
+384    i386    arch_prctl              sys_arch_prctl                  __ia32_compat_sys_arch_prctl
index a83c0f7f462fb235508726d7c163434bdd8d4f4f..73f4951fc2fa263691d2c00f320996b4f4c8141d 100644 (file)
 
 #
 # x32-specific system call numbers start at 512 to avoid cache impact
-# for native 64-bit operation. The __compat_sys_x32 stubs are created
+# for native 64-bit operation. The __x32_compat_sys stubs are created
 # on-the-fly for compat_sys_*() compatibility system calls if X86_X32
 # is defined.
 #
-512    x32     rt_sigaction            __compat_sys_x32_rt_sigaction
+512    x32     rt_sigaction            __x32_compat_sys_rt_sigaction
 513    x32     rt_sigreturn            sys32_x32_rt_sigreturn
-514    x32     ioctl                   __compat_sys_x32_ioctl
-515    x32     readv                   __compat_sys_x32_readv
-516    x32     writev                  __compat_sys_x32_writev
-517    x32     recvfrom                __compat_sys_x32_recvfrom
-518    x32     sendmsg                 __compat_sys_x32_sendmsg
-519    x32     recvmsg                 __compat_sys_x32_recvmsg
-520    x32     execve                  __compat_sys_x32_execve/ptregs
-521    x32     ptrace                  __compat_sys_x32_ptrace
-522    x32     rt_sigpending           __compat_sys_x32_rt_sigpending
-523    x32     rt_sigtimedwait         __compat_sys_x32_rt_sigtimedwait
-524    x32     rt_sigqueueinfo         __compat_sys_x32_rt_sigqueueinfo
-525    x32     sigaltstack             __compat_sys_x32_sigaltstack
-526    x32     timer_create            __compat_sys_x32_timer_create
-527    x32     mq_notify               __compat_sys_x32_mq_notify
-528    x32     kexec_load              __compat_sys_x32_kexec_load
-529    x32     waitid                  __compat_sys_x32_waitid
-530    x32     set_robust_list         __compat_sys_x32_set_robust_list
-531    x32     get_robust_list         __compat_sys_x32_get_robust_list
-532    x32     vmsplice                __compat_sys_x32_vmsplice
-533    x32     move_pages              __compat_sys_x32_move_pages
-534    x32     preadv                  __compat_sys_x32_preadv64
-535    x32     pwritev                 __compat_sys_x32_pwritev64
-536    x32     rt_tgsigqueueinfo       __compat_sys_x32_rt_tgsigqueueinfo
-537    x32     recvmmsg                __compat_sys_x32_recvmmsg
-538    x32     sendmmsg                __compat_sys_x32_sendmmsg
-539    x32     process_vm_readv        __compat_sys_x32_process_vm_readv
-540    x32     process_vm_writev       __compat_sys_x32_process_vm_writev
-541    x32     setsockopt              __compat_sys_x32_setsockopt
-542    x32     getsockopt              __compat_sys_x32_getsockopt
-543    x32     io_setup                __compat_sys_x32_io_setup
-544    x32     io_submit               __compat_sys_x32_io_submit
-545    x32     execveat                __compat_sys_x32_execveat/ptregs
-546    x32     preadv2                 __compat_sys_x32_preadv64v2
-547    x32     pwritev2                __compat_sys_x32_pwritev64v2
+514    x32     ioctl                   __x32_compat_sys_ioctl
+515    x32     readv                   __x32_compat_sys_readv
+516    x32     writev                  __x32_compat_sys_writev
+517    x32     recvfrom                __x32_compat_sys_recvfrom
+518    x32     sendmsg                 __x32_compat_sys_sendmsg
+519    x32     recvmsg                 __x32_compat_sys_recvmsg
+520    x32     execve                  __x32_compat_sys_execve/ptregs
+521    x32     ptrace                  __x32_compat_sys_ptrace
+522    x32     rt_sigpending           __x32_compat_sys_rt_sigpending
+523    x32     rt_sigtimedwait         __x32_compat_sys_rt_sigtimedwait
+524    x32     rt_sigqueueinfo         __x32_compat_sys_rt_sigqueueinfo
+525    x32     sigaltstack             __x32_compat_sys_sigaltstack
+526    x32     timer_create            __x32_compat_sys_timer_create
+527    x32     mq_notify               __x32_compat_sys_mq_notify
+528    x32     kexec_load              __x32_compat_sys_kexec_load
+529    x32     waitid                  __x32_compat_sys_waitid
+530    x32     set_robust_list         __x32_compat_sys_set_robust_list
+531    x32     get_robust_list         __x32_compat_sys_get_robust_list
+532    x32     vmsplice                __x32_compat_sys_vmsplice
+533    x32     move_pages              __x32_compat_sys_move_pages
+534    x32     preadv                  __x32_compat_sys_preadv64
+535    x32     pwritev                 __x32_compat_sys_pwritev64
+536    x32     rt_tgsigqueueinfo       __x32_compat_sys_rt_tgsigqueueinfo
+537    x32     recvmmsg                __x32_compat_sys_recvmmsg
+538    x32     sendmmsg                __x32_compat_sys_sendmmsg
+539    x32     process_vm_readv        __x32_compat_sys_process_vm_readv
+540    x32     process_vm_writev       __x32_compat_sys_process_vm_writev
+541    x32     setsockopt              __x32_compat_sys_setsockopt
+542    x32     getsockopt              __x32_compat_sys_getsockopt
+543    x32     io_setup                __x32_compat_sys_io_setup
+544    x32     io_submit               __x32_compat_sys_io_submit
+545    x32     execveat                __x32_compat_sys_execveat/ptregs
+546    x32     preadv2                 __x32_compat_sys_preadv64v2
+547    x32     pwritev2                __x32_compat_sys_pwritev64v2
index 798a3c2bff4f34ca43d9b9d46f28d41aecb01337..8d0951cfc2d41cbcf44825b1a4e76221ba94cc63 100644 (file)
  * case as well.
  */
 #define COMPAT_SC_IA32_STUBx(x, name, ...)                             \
-       asmlinkage long __compat_sys_ia32##name(const struct pt_regs *regs);\
-       ALLOW_ERROR_INJECTION(__compat_sys_ia32##name, ERRNO);          \
-       asmlinkage long __compat_sys_ia32##name(const struct pt_regs *regs)\
+       asmlinkage long __ia32_compat_sys##name(const struct pt_regs *regs);\
+       ALLOW_ERROR_INJECTION(__ia32_compat_sys##name, ERRNO);          \
+       asmlinkage long __ia32_compat_sys##name(const struct pt_regs *regs)\
        {                                                               \
-               return c_SyS##name(SC_IA32_REGS_TO_ARGS(x,__VA_ARGS__));\
+               return __se_compat_sys##name(SC_IA32_REGS_TO_ARGS(x,__VA_ARGS__));\
        }                                                               \
 
 #define SC_IA32_WRAPPERx(x, name, ...)                                 \
  * with x86_64 obviously do not need such care.
  */
 #define COMPAT_SC_X32_STUBx(x, name, ...)                              \
-       asmlinkage long __compat_sys_x32##name(const struct pt_regs *regs);\
-       ALLOW_ERROR_INJECTION(__compat_sys_x32##name, ERRNO);           \
-       asmlinkage long __compat_sys_x32##name(const struct pt_regs *regs)\
+       asmlinkage long __x32_compat_sys##name(const struct pt_regs *regs);\
+       ALLOW_ERROR_INJECTION(__x32_compat_sys##name, ERRNO);           \
+       asmlinkage long __x32_compat_sys##name(const struct pt_regs *regs)\
        {                                                               \
-               return c_SyS##name(SC_X86_64_REGS_TO_ARGS(x,__VA_ARGS__));\
+               return __se_compat_sys##name(SC_X86_64_REGS_TO_ARGS(x,__VA_ARGS__));\
        }                                                               \
 
 #else /* CONFIG_X86_X32 */
  * of them. There is no need to implement COMPAT_SYSCALL_DEFINE0, as it is
  * unused on x86.
  */
-#define COMPAT_SYSCALL_DEFINEx(x, name, ...)                           \
-       static long c_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__));        \
-       static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
-       COMPAT_SC_IA32_STUBx(x, name, __VA_ARGS__)                      \
-       COMPAT_SC_X32_STUBx(x, name, __VA_ARGS__)                       \
-       static long c_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))         \
-       {                                                               \
-               return C_SYSC##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__)); \
-       }                                                               \
-       static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__))
+#define COMPAT_SYSCALL_DEFINEx(x, name, ...)                                   \
+       static long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__));      \
+       static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
+       COMPAT_SC_IA32_STUBx(x, name, __VA_ARGS__)                              \
+       COMPAT_SC_X32_STUBx(x, name, __VA_ARGS__)                               \
+       static long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__))       \
+       {                                                                       \
+               return __do_compat_sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));\
+       }                                                                       \
+       static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
 
 /*
  * As some compat syscalls may not be implemented, we need to expand
  * kernel/time/posix-stubs.c to cover this case as well.
  */
 #define COND_SYSCALL_COMPAT(name)                                      \
-       cond_syscall(__compat_sys_ia32_##name);                         \
-       cond_syscall(__compat_sys_x32_##name)
+       cond_syscall(__ia32_compat_sys_##name);                         \
+       cond_syscall(__x32_compat_sys_##name)
 
 #define COMPAT_SYS_NI(name)                                            \
-       SYSCALL_ALIAS(__compat_sys_ia32_##name, sys_ni_posix_timers);   \
-       SYSCALL_ALIAS(__compat_sys_x32_##name, sys_ni_posix_timers)
+       SYSCALL_ALIAS(__ia32_compat_sys_##name, sys_ni_posix_timers);   \
+       SYSCALL_ALIAS(__x32_compat_sys_##name, sys_ni_posix_timers)
 
 #endif /* CONFIG_COMPAT */
 
index d4d18d94695cc68c19e9a35bf7c37156a214c38c..9fa979dd0d9df9b91f866f5762fe96dc9fa5c5ac 100644 (file)
@@ -20,7 +20,7 @@
 long ksys_ioperm(unsigned long from, unsigned long num, int turn_on);
 
 #ifdef CONFIG_X86_32
-/* 
+/*
  * These definitions are only valid on pure 32-bit systems; x86-64 uses a
  * different syscall calling convention
  */
index 2d85ec5cfda24fe0c62ac26829fbd8a28d33431b..aca050aac7b6980c9cdd24e3a8b262c91f93cdff 100644 (file)
 #define COMPAT_SYSCALL_DEFINE6(name, ...) \
        COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
 
+/*
+ * The asmlinkage stub is aliased to a function named __se_compat_sys_*() which
+ * sign-extends 32-bit ints to longs whenever needed. The actual work is
+ * done within __do_compat_sys_*().
+ */
 #ifndef COMPAT_SYSCALL_DEFINEx
-#define COMPAT_SYSCALL_DEFINEx(x, name, ...)                           \
-       asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
-       asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\
-               __attribute__((alias(__stringify(compat_SyS##name))));  \
-       ALLOW_ERROR_INJECTION(compat_sys##name, ERRNO); \
-       static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
-       asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__));\
-       asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\
-       {                                                               \
-               return C_SYSC##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__)); \
-       }                                                               \
-       static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__))
+#define COMPAT_SYSCALL_DEFINEx(x, name, ...)                                   \
+       asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));       \
+       asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))        \
+               __attribute__((alias(__stringify(__se_compat_sys##name))));     \
+       ALLOW_ERROR_INJECTION(compat_sys##name, ERRNO);                         \
+       static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
+       asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__));  \
+       asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__))   \
+       {                                                                       \
+               return __do_compat_sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));\
+       }                                                                       \
+       static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
 #endif /* COMPAT_SYSCALL_DEFINEx */
 
 #ifndef compat_user_stack_pointer
index ce129e61cc65f3a7616017f0c96d5bbab423f3d9..a923f05edb36604579901caf7fa1d1ad0a67c98e 100755 (executable)
@@ -31,7 +31,7 @@ def getsizes(file, format):
                 # strip generated symbols
                 if name.startswith("__mod_"): continue
                 if name.startswith("__se_sys"): continue
-                if name.startswith("compat_SyS_"): continue
+                if name.startswith("__se_compat_sys"): continue
                 if name == "linux_banner": continue
                 # statics and some other optimizations adds random .NUMBER
                 name = re_NUMBER.sub('', name)