tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 1df27313f50a57497c1faeb6a6ae4ca939c85a7d commit: 6cc8d2b286d9e7168d72e342d1b031317cd7752b x86/entry: Refactor COND_SYSCALL macros date: 12 months ago config: x86_64-randconfig-r012-20210316 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6cc8d2b286d9e7168d72e342d1b031317cd7752b git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 6cc8d2b286d9e7168d72e342d1b031317cd7752b # save the attached .config to linux build tree make W=1 ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): In file included from kernel/sys_ni.c:10: arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_setup' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL' 39 | COND_SYSCALL(io_setup); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_setup' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL' 39 | COND_SYSCALL(io_setup); | ^~~~~~~~~~~~ >> arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_compat_sys_io_setup' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:78:2: note: in expansion of macro '__COND_SYSCALL' 78 | __COND_SYSCALL(ia32, compat_sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:157:2: note: in expansion of macro '__IA32_COMPAT_COND_SYSCALL' 157 | __IA32_COMPAT_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:40:1: note: in expansion of macro 'COND_SYSCALL_COMPAT' 40 | COND_SYSCALL_COMPAT(io_setup); | ^~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_destroy' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:41:1: note: in expansion of macro 'COND_SYSCALL' 41 | COND_SYSCALL(io_destroy); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_destroy' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:41:1: note: in expansion of macro 'COND_SYSCALL' 41 | COND_SYSCALL(io_destroy); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_submit' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:42:1: note: in expansion of macro 'COND_SYSCALL' 42 | COND_SYSCALL(io_submit); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_submit' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:42:1: note: in expansion of macro 'COND_SYSCALL' 42 | COND_SYSCALL(io_submit); | ^~~~~~~~~~~~ >> arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_compat_sys_io_submit' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:78:2: note: in expansion of macro '__COND_SYSCALL' 78 | __COND_SYSCALL(ia32, compat_sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:157:2: note: in expansion of macro '__IA32_COMPAT_COND_SYSCALL' 157 | __IA32_COMPAT_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:43:1: note: in expansion of macro 'COND_SYSCALL_COMPAT' 43 | COND_SYSCALL_COMPAT(io_submit); | ^~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_cancel' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:44:1: note: in expansion of macro 'COND_SYSCALL' 44 | COND_SYSCALL(io_cancel); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_cancel' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:44:1: note: in expansion of macro 'COND_SYSCALL' 44 | COND_SYSCALL(io_cancel); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_getevents_time32' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:45:1: note: in expansion of macro 'COND_SYSCALL' 45 | COND_SYSCALL(io_getevents_time32); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_getevents_time32' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:45:1: note: in expansion of macro 'COND_SYSCALL' 45 | COND_SYSCALL(io_getevents_time32); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_getevents' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:46:1: note: in expansion of macro 'COND_SYSCALL' 46 | COND_SYSCALL(io_getevents); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_getevents' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:46:1: note: in expansion of macro 'COND_SYSCALL' 46 | COND_SYSCALL(io_getevents); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_pgetevents_time32' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:47:1: note: in expansion of macro 'COND_SYSCALL' 47 | COND_SYSCALL(io_pgetevents_time32); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_pgetevents_time32' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:47:1: note: in expansion of macro 'COND_SYSCALL' 47 | COND_SYSCALL(io_pgetevents_time32); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_pgetevents' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:48:1: note: in expansion of macro 'COND_SYSCALL' 48 | COND_SYSCALL(io_pgetevents); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_pgetevents' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:48:1: note: in expansion of macro 'COND_SYSCALL' 48 | COND_SYSCALL(io_pgetevents); | ^~~~~~~~~~~~ >> arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_compat_sys_io_pgetevents_time32' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:78:2: note: in expansion of macro '__COND_SYSCALL' 78 | __COND_SYSCALL(ia32, compat_sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:157:2: note: in expansion of macro '__IA32_COMPAT_COND_SYSCALL' 157 | __IA32_COMPAT_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:49:1: note: in expansion of macro 'COND_SYSCALL_COMPAT' 49 | COND_SYSCALL_COMPAT(io_pgetevents_time32); | ^~~~~~~~~~~~~~~~~~~ >> arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_compat_sys_io_pgetevents' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:78:2: note: in expansion of macro '__COND_SYSCALL' 78 | __COND_SYSCALL(ia32, compat_sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:157:2: note: in expansion of macro '__IA32_COMPAT_COND_SYSCALL' 157 | __IA32_COMPAT_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:50:1: note: in expansion of macro 'COND_SYSCALL_COMPAT' 50 | COND_SYSCALL_COMPAT(io_pgetevents); | ^~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_uring_setup' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:51:1: note: in expansion of macro 'COND_SYSCALL' 51 | COND_SYSCALL(io_uring_setup); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_uring_setup' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:51:1: note: in expansion of macro 'COND_SYSCALL' 51 | COND_SYSCALL(io_uring_setup); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_uring_enter' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:52:1: note: in expansion of macro 'COND_SYSCALL' 52 | COND_SYSCALL(io_uring_enter); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_uring_enter' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:52:1: note: in expansion of macro 'COND_SYSCALL' 52 | COND_SYSCALL(io_uring_enter); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_uring_register' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:53:1: note: in expansion of macro 'COND_SYSCALL' 53 | COND_SYSCALL(io_uring_register); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_uring_register' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:53:1: note: in expansion of macro 'COND_SYSCALL' 53 | COND_SYSCALL(io_uring_register); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_lookup_dcookie' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:60:1: note: in expansion of macro 'COND_SYSCALL' 60 | COND_SYSCALL(lookup_dcookie); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_lookup_dcookie' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:60:1: note: in expansion of macro 'COND_SYSCALL' 60 | COND_SYSCALL(lookup_dcookie); | ^~~~~~~~~~~~ >> arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_compat_sys_lookup_dcookie' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:78:2: note: in expansion of macro '__COND_SYSCALL' 78 | __COND_SYSCALL(ia32, compat_sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:157:2: note: in expansion of macro '__IA32_COMPAT_COND_SYSCALL' 157 | __IA32_COMPAT_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:61:1: note: in expansion of macro 'COND_SYSCALL_COMPAT' 61 | COND_SYSCALL_COMPAT(lookup_dcookie); | ^~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_eventfd2' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:64:1: note: in expansion of macro 'COND_SYSCALL' 64 | COND_SYSCALL(eventfd2); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_eventfd2' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:64:1: note: in expansion of macro 'COND_SYSCALL' 64 | COND_SYSCALL(eventfd2); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_epoll_create1' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:67:1: note: in expansion of macro 'COND_SYSCALL' 67 | COND_SYSCALL(epoll_create1); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_epoll_create1' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:67:1: note: in expansion of macro 'COND_SYSCALL' 67 | COND_SYSCALL(epoll_create1); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_epoll_ctl' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:68:1: note: in expansion of macro 'COND_SYSCALL' 68 | COND_SYSCALL(epoll_ctl); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_epoll_ctl' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:68:1: note: in expansion of macro 'COND_SYSCALL' 68 | COND_SYSCALL(epoll_ctl); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_epoll_pwait' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:69:1: note: in expansion of macro 'COND_SYSCALL' 69 | COND_SYSCALL(epoll_pwait); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_epoll_pwait' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:69:1: note: in expansion of macro 'COND_SYSCALL' 69 | COND_SYSCALL(epoll_pwait); | ^~~~~~~~~~~~ >> arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_compat_sys_epoll_pwait' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:78:2: note: in expansion of macro '__COND_SYSCALL' 78 | __COND_SYSCALL(ia32, compat_sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:157:2: note: in expansion of macro '__IA32_COMPAT_COND_SYSCALL' 157 | __IA32_COMPAT_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:70:1: note: in expansion of macro 'COND_SYSCALL_COMPAT' 70 | COND_SYSCALL_COMPAT(epoll_pwait); | ^~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_inotify_init1' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:75:1: note: in expansion of macro 'COND_SYSCALL' 75 | COND_SYSCALL(inotify_init1); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_inotify_init1' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:75:1: note: in expansion of macro 'COND_SYSCALL' 75 | COND_SYSCALL(inotify_init1); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_inotify_add_watch' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:76:1: note: in expansion of macro 'COND_SYSCALL' 76 | COND_SYSCALL(inotify_add_watch); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_inotify_add_watch' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:76:1: note: in expansion of macro 'COND_SYSCALL' 76 | COND_SYSCALL(inotify_add_watch); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_inotify_rm_watch' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:77:1: note: in expansion of macro 'COND_SYSCALL' 77 | COND_SYSCALL(inotify_rm_watch); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_inotify_rm_watch' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL' 232 | __IA32_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:77:1: note: in expansion of macro 'COND_SYSCALL' 77 | COND_SYSCALL(inotify_rm_watch); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_ioprio_set' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL' 54 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL' 231 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:82:1: note: in expansion of macro 'COND_SYSCALL' 82 | COND_SYSCALL(ioprio_set); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_ioprio_set' [-Wmissing-prototypes] 40 | __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL' 88 | __COND_SYSCALL(ia32, sys_##name) .. vim +/__ia32_compat_sys_io_setup +40 arch/x86/include/asm/syscall_wrapper.h 10 11 /* Mapping of registers to parameters for syscalls on x86-64 and x32 */ 12 #define SC_X86_64_REGS_TO_ARGS(x, ...) \ 13 __MAP(x,__SC_ARGS \ 14 ,,regs->di,,regs->si,,regs->dx \ 15 ,,regs->r10,,regs->r8,,regs->r9) \ 16 17 /* Mapping of registers to parameters for syscalls on i386 */ 18 #define SC_IA32_REGS_TO_ARGS(x, ...) \ 19 __MAP(x,__SC_ARGS \ 20 ,,(unsigned int)regs->bx,,(unsigned int)regs->cx \ 21 ,,(unsigned int)regs->dx,,(unsigned int)regs->si \ 22 ,,(unsigned int)regs->di,,(unsigned int)regs->bp) 23 24 #define __SYS_STUB0(abi, name) \ 25 asmlinkage long __##abi##_##name(const struct pt_regs *regs); \ 26 ALLOW_ERROR_INJECTION(__##abi##_##name, ERRNO); \ 27 asmlinkage long __##abi##_##name(const struct pt_regs *regs) \ 28 __alias(__do_##name); 29 30 #define __SYS_STUBx(abi, name, ...) \ 31 asmlinkage long __##abi##_##name(const struct pt_regs *regs); \ 32 ALLOW_ERROR_INJECTION(__##abi##_##name, ERRNO); \ 33 asmlinkage long __##abi##_##name(const struct pt_regs *regs) \ 34 { \ 35 return __se_##name(__VA_ARGS__); \ 36 } 37 38 #define __COND_SYSCALL(abi, name) \ 39 asmlinkage __weak long \ > 40 __##abi##_##name(const struct pt_regs *__unused) \ 41 { \ 42 return sys_ni_syscall(); \ 43 } 44 45 #ifdef CONFIG_X86_64 46 #define __X64_SYS_STUB0(name) \ 47 __SYS_STUB0(x64, sys_##name) 48 49 #define __X64_SYS_STUBx(x, name, ...) \ 50 __SYS_STUBx(x64, sys##name, \ 51 SC_X86_64_REGS_TO_ARGS(x, __VA_ARGS__)) 52 53 #define __X64_COND_SYSCALL(name) \ 54 __COND_SYSCALL(x64, sys_##name) 55 #else /* CONFIG_X86_64 */ 56 #define __X64_SYS_STUB0(name) 57 #define __X64_SYS_STUBx(x, name, ...) 58 #define __X64_COND_SYSCALL(name) 59 #endif /* CONFIG_X86_64 */ 60 61 #ifdef CONFIG_IA32_EMULATION 62 /* 63 * For IA32 emulation, we need to handle "compat" syscalls *and* create 64 * additional wrappers (aptly named __ia32_sys_xyzzy) which decode the 65 * ia32 regs in the proper order for shared or "common" syscalls. As some 66 * syscalls may not be implemented, we need to expand COND_SYSCALL in 67 * kernel/sys_ni.c and SYS_NI in kernel/time/posix-stubs.c to cover this 68 * case as well. 69 */ 70 #define __IA32_COMPAT_SYS_STUB0(name) \ 71 __SYS_STUB0(ia32, compat_sys_##name) 72 73 #define __IA32_COMPAT_SYS_STUBx(x, name, ...) \ 74 __SYS_STUBx(ia32, compat_sys##name, \ 75 SC_IA32_REGS_TO_ARGS(x, __VA_ARGS__)) 76 77 #define __IA32_COMPAT_COND_SYSCALL(name) \ > 78 __COND_SYSCALL(ia32, compat_sys_##name) 79 80 #define __IA32_SYS_STUB0(name) \ 81 __SYS_STUB0(ia32, sys_##name) 82 83 #define __IA32_SYS_STUBx(x, name, ...) \ 84 __SYS_STUBx(ia32, sys##name, \ 85 SC_IA32_REGS_TO_ARGS(x, __VA_ARGS__)) 86 87 #define __IA32_COND_SYSCALL(name) \ > 88 __COND_SYSCALL(ia32, sys_##name) 89 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org