From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4F5AEC433F5 for ; Fri, 1 Oct 2021 00:13:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 18BA16159A for ; Fri, 1 Oct 2021 00:13:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1350651AbhJAAOo (ORCPT ); Thu, 30 Sep 2021 20:14:44 -0400 Received: from mga18.intel.com ([134.134.136.126]:53889 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345765AbhJAAOn (ORCPT ); Thu, 30 Sep 2021 20:14:43 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10123"; a="212397536" X-IronPort-AV: E=Sophos;i="5.85,336,1624345200"; d="gz'50?scan'50,208,50";a="212397536" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2021 17:12:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,336,1624345200"; d="gz'50?scan'50,208,50";a="556011713" Received: from lkp-server01.sh.intel.com (HELO 72c3bd3cf19c) ([10.239.97.150]) by FMSMGA003.fm.intel.com with ESMTP; 30 Sep 2021 17:12:56 -0700 Received: from kbuild by 72c3bd3cf19c with local (Exim 4.92) (envelope-from ) id 1mW6AZ-0000aS-6P; Fri, 01 Oct 2021 00:12:55 +0000 Date: Fri, 1 Oct 2021 08:11:56 +0800 From: kernel test robot To: =?iso-8859-1?Q?Micka=EBl_Sala=FCn?= Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org, Jann Horn Subject: [landlock-lsm:landlock-v26 8/12] arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_landlock_enforce_ruleset_current' Message-ID: <202110010849.L2ifzV1T-lkp@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="cWoXeonUoKmBZSoM" Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --cWoXeonUoKmBZSoM Content-Type: text/plain; charset=us-ascii Content-Disposition: inline tree: https://github.com/landlock-lsm/linux landlock-v26 head: 73bde39c3b83d0ef1cb12cb830ecc4cba1f23f15 commit: c36e8150b80e14c3b48df6a0aabfef83f41ab226 [8/12] landlock: Add syscall implementations config: x86_64-randconfig-a004-20210930 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://github.com/landlock-lsm/linux/commit/c36e8150b80e14c3b48df6a0aabfef83f41ab226 git remote add landlock-lsm https://github.com/landlock-lsm/linux git fetch --no-tags landlock-lsm landlock-v26 git checkout c36e8150b80e14c3b48df6a0aabfef83f41ab226 # 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 >>): | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:253:1: note: in expansion of macro 'COND_SYSCALL' 253 | COND_SYSCALL(recvmsg); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x32_compat_sys_recvmsg' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:175:2: note: in expansion of macro '__COND_SYSCALL' 175 | __COND_SYSCALL(x32, compat_sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:219:2: note: in expansion of macro '__X32_COMPAT_COND_SYSCALL' 219 | __X32_COMPAT_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:254:1: note: in expansion of macro 'COND_SYSCALL_COMPAT' 254 | COND_SYSCALL_COMPAT(recvmsg); | ^~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_mremap' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:259:1: note: in expansion of macro 'COND_SYSCALL' 259 | COND_SYSCALL(mremap); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_add_key' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:262:1: note: in expansion of macro 'COND_SYSCALL' 262 | COND_SYSCALL(add_key); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_request_key' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:263:1: note: in expansion of macro 'COND_SYSCALL' 263 | COND_SYSCALL(request_key); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_keyctl' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:264:1: note: in expansion of macro 'COND_SYSCALL' 264 | COND_SYSCALL(keyctl); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x32_compat_sys_keyctl' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:175:2: note: in expansion of macro '__COND_SYSCALL' 175 | __COND_SYSCALL(x32, compat_sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:219:2: note: in expansion of macro '__X32_COMPAT_COND_SYSCALL' 219 | __X32_COMPAT_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:265:1: note: in expansion of macro 'COND_SYSCALL_COMPAT' 265 | COND_SYSCALL_COMPAT(keyctl); | ^~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_landlock_create_ruleset' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:268:1: note: in expansion of macro 'COND_SYSCALL' 268 | COND_SYSCALL(landlock_create_ruleset); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_landlock_add_rule' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:269:1: note: in expansion of macro 'COND_SYSCALL' 269 | COND_SYSCALL(landlock_add_rule); | ^~~~~~~~~~~~ >> arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_landlock_enforce_ruleset_current' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:270:1: note: in expansion of macro 'COND_SYSCALL' 270 | COND_SYSCALL(landlock_enforce_ruleset_current); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_fadvise64_64' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:275:1: note: in expansion of macro 'COND_SYSCALL' 275 | COND_SYSCALL(fadvise64_64); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_swapon' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:278:1: note: in expansion of macro 'COND_SYSCALL' 278 | COND_SYSCALL(swapon); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_swapoff' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:279:1: note: in expansion of macro 'COND_SYSCALL' 279 | COND_SYSCALL(swapoff); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_mprotect' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:280:1: note: in expansion of macro 'COND_SYSCALL' 280 | COND_SYSCALL(mprotect); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_msync' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:281:1: note: in expansion of macro 'COND_SYSCALL' 281 | COND_SYSCALL(msync); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_mlock' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:282:1: note: in expansion of macro 'COND_SYSCALL' 282 | COND_SYSCALL(mlock); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_munlock' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:283:1: note: in expansion of macro 'COND_SYSCALL' 283 | COND_SYSCALL(munlock); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_mlockall' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) vim +/__x64_sys_landlock_enforce_ruleset_current +83 arch/x86/include/asm/syscall_wrapper.h cc42c045af1ff4 Brian Gerst 2020-03-13 13 25c619e59b395a Brian Gerst 2020-03-13 14 /* 25c619e59b395a Brian Gerst 2020-03-13 15 * Instead of the generic __SYSCALL_DEFINEx() definition, the x86 version takes 25c619e59b395a Brian Gerst 2020-03-13 16 * struct pt_regs *regs as the only argument of the syscall stub(s) named as: 25c619e59b395a Brian Gerst 2020-03-13 17 * __x64_sys_*() - 64-bit native syscall 25c619e59b395a Brian Gerst 2020-03-13 18 * __ia32_sys_*() - 32-bit native syscall or common compat syscall 25c619e59b395a Brian Gerst 2020-03-13 19 * __ia32_compat_sys_*() - 32-bit compat syscall 25c619e59b395a Brian Gerst 2020-03-13 20 * __x32_compat_sys_*() - 64-bit X32 compat syscall 25c619e59b395a Brian Gerst 2020-03-13 21 * 25c619e59b395a Brian Gerst 2020-03-13 22 * The registers are decoded according to the ABI: 25c619e59b395a Brian Gerst 2020-03-13 23 * 64-bit: RDI, RSI, RDX, R10, R8, R9 25c619e59b395a Brian Gerst 2020-03-13 24 * 32-bit: EBX, ECX, EDX, ESI, EDI, EBP 25c619e59b395a Brian Gerst 2020-03-13 25 * 25c619e59b395a Brian Gerst 2020-03-13 26 * The stub then passes the decoded arguments to the __se_sys_*() wrapper to 25c619e59b395a Brian Gerst 2020-03-13 27 * perform sign-extension (omitted for zero-argument syscalls). Finally the 25c619e59b395a Brian Gerst 2020-03-13 28 * arguments are passed to the __do_sys_*() function which is the actual 25c619e59b395a Brian Gerst 2020-03-13 29 * syscall. These wrappers are marked as inline so the compiler can optimize 25c619e59b395a Brian Gerst 2020-03-13 30 * the functions where appropriate. 25c619e59b395a Brian Gerst 2020-03-13 31 * 25c619e59b395a Brian Gerst 2020-03-13 32 * Example assembly (slightly re-ordered for better readability): 25c619e59b395a Brian Gerst 2020-03-13 33 * 25c619e59b395a Brian Gerst 2020-03-13 34 * <__x64_sys_recv>: <-- syscall with 4 parameters 25c619e59b395a Brian Gerst 2020-03-13 35 * callq <__fentry__> 25c619e59b395a Brian Gerst 2020-03-13 36 * 25c619e59b395a Brian Gerst 2020-03-13 37 * mov 0x70(%rdi),%rdi <-- decode regs->di 25c619e59b395a Brian Gerst 2020-03-13 38 * mov 0x68(%rdi),%rsi <-- decode regs->si 25c619e59b395a Brian Gerst 2020-03-13 39 * mov 0x60(%rdi),%rdx <-- decode regs->dx 25c619e59b395a Brian Gerst 2020-03-13 40 * mov 0x38(%rdi),%rcx <-- decode regs->r10 25c619e59b395a Brian Gerst 2020-03-13 41 * 25c619e59b395a Brian Gerst 2020-03-13 42 * xor %r9d,%r9d <-- clear %r9 25c619e59b395a Brian Gerst 2020-03-13 43 * xor %r8d,%r8d <-- clear %r8 25c619e59b395a Brian Gerst 2020-03-13 44 * 25c619e59b395a Brian Gerst 2020-03-13 45 * callq __sys_recvfrom <-- do the actual work in __sys_recvfrom() 25c619e59b395a Brian Gerst 2020-03-13 46 * which takes 6 arguments 25c619e59b395a Brian Gerst 2020-03-13 47 * 25c619e59b395a Brian Gerst 2020-03-13 48 * cltq <-- extend return value to 64-bit 25c619e59b395a Brian Gerst 2020-03-13 49 * retq <-- return 25c619e59b395a Brian Gerst 2020-03-13 50 * 25c619e59b395a Brian Gerst 2020-03-13 51 * This approach avoids leaking random user-provided register content down 25c619e59b395a Brian Gerst 2020-03-13 52 * the call chain. 25c619e59b395a Brian Gerst 2020-03-13 53 */ 25c619e59b395a Brian Gerst 2020-03-13 54 ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 55 /* Mapping of registers to parameters for syscalls on x86-64 and x32 */ ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 56 #define SC_X86_64_REGS_TO_ARGS(x, ...) \ ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 57 __MAP(x,__SC_ARGS \ ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 58 ,,regs->di,,regs->si,,regs->dx \ ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 59 ,,regs->r10,,regs->r8,,regs->r9) \ ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 60 ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 61 /* Mapping of registers to parameters for syscalls on i386 */ ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 62 #define SC_IA32_REGS_TO_ARGS(x, ...) \ ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 63 __MAP(x,__SC_ARGS \ ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 64 ,,(unsigned int)regs->bx,,(unsigned int)regs->cx \ ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 65 ,,(unsigned int)regs->dx,,(unsigned int)regs->si \ ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 66 ,,(unsigned int)regs->di,,(unsigned int)regs->bp) ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 67 d2b5de495ee983 Brian Gerst 2020-03-13 68 #define __SYS_STUB0(abi, name) \ 0f78ff17112d8b Brian Gerst 2020-03-13 69 long __##abi##_##name(const struct pt_regs *regs); \ d2b5de495ee983 Brian Gerst 2020-03-13 70 ALLOW_ERROR_INJECTION(__##abi##_##name, ERRNO); \ 0f78ff17112d8b Brian Gerst 2020-03-13 71 long __##abi##_##name(const struct pt_regs *regs) \ d2b5de495ee983 Brian Gerst 2020-03-13 72 __alias(__do_##name); d2b5de495ee983 Brian Gerst 2020-03-13 73 4399e0cf494f73 Brian Gerst 2020-03-13 74 #define __SYS_STUBx(abi, name, ...) \ 0f78ff17112d8b Brian Gerst 2020-03-13 75 long __##abi##_##name(const struct pt_regs *regs); \ 4399e0cf494f73 Brian Gerst 2020-03-13 76 ALLOW_ERROR_INJECTION(__##abi##_##name, ERRNO); \ 0f78ff17112d8b Brian Gerst 2020-03-13 77 long __##abi##_##name(const struct pt_regs *regs) \ 4399e0cf494f73 Brian Gerst 2020-03-13 78 { \ 4399e0cf494f73 Brian Gerst 2020-03-13 79 return __se_##name(__VA_ARGS__); \ 4399e0cf494f73 Brian Gerst 2020-03-13 80 } 4399e0cf494f73 Brian Gerst 2020-03-13 81 6cc8d2b286d9e7 Brian Gerst 2020-03-13 82 #define __COND_SYSCALL(abi, name) \ 0f78ff17112d8b Brian Gerst 2020-03-13 @83 __weak long __##abi##_##name(const struct pt_regs *__unused) \ 6cc8d2b286d9e7 Brian Gerst 2020-03-13 84 { \ 6cc8d2b286d9e7 Brian Gerst 2020-03-13 85 return sys_ni_syscall(); \ 6cc8d2b286d9e7 Brian Gerst 2020-03-13 86 } 6cc8d2b286d9e7 Brian Gerst 2020-03-13 87 :::::: The code at line 83 was first introduced by commit :::::: 0f78ff17112d8b3469b805ff4ea9780cc1e5c93b x86/entry: Drop asmlinkage from syscalls :::::: TO: Brian Gerst :::::: CC: Thomas Gleixner --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --cWoXeonUoKmBZSoM Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 6gEA --cWoXeonUoKmBZSoM--