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 X-Spam-Level: X-Spam-Status: No, score=-10.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B7A99C433DB for ; Sat, 27 Mar 2021 16:04:39 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id E829F61995 for ; Sat, 27 Mar 2021 16:04:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E829F61995 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 3A2586B006C; Sat, 27 Mar 2021 12:04:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 32A8D6B006E; Sat, 27 Mar 2021 12:04:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 130906B0070; Sat, 27 Mar 2021 12:04:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0051.hostedemail.com [216.40.44.51]) by kanga.kvack.org (Postfix) with ESMTP id DB86B6B006C for ; Sat, 27 Mar 2021 12:04:37 -0400 (EDT) Received: from smtpin32.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 953B5180373F7 for ; Sat, 27 Mar 2021 16:04:37 +0000 (UTC) X-FDA: 77966126994.32.09DF64A Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by imf14.hostedemail.com (Postfix) with ESMTP id 2AAB6C0007C6 for ; Sat, 27 Mar 2021 16:04:31 +0000 (UTC) IronPort-SDR: jh9mWJAV7mWFK+Wi/ocTk5sILpTbHV8hyQ9qeiGZ1GKOQ22T9xMsXGR42n/PZUMh1MTcJ9BEDS TwPwwLtZn/TQ== X-IronPort-AV: E=McAfee;i="6000,8403,9935"; a="276460494" X-IronPort-AV: E=Sophos;i="5.81,283,1610438400"; d="gz'50?scan'50,208,50";a="276460494" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Mar 2021 09:04:34 -0700 IronPort-SDR: D0iYAlFgMmeZtIxhY6RtgU35w7lT0+EvsSfuLYUna9lzLtulRmdhpJ0BFSyMjA7+p20nBO913c KeFX/cougREQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,283,1610438400"; d="gz'50?scan'50,208,50";a="453919349" Received: from lkp-server01.sh.intel.com (HELO 69d8fcc516b7) ([10.239.97.150]) by orsmga001.jf.intel.com with ESMTP; 27 Mar 2021 09:04:31 -0700 Received: from kbuild by 69d8fcc516b7 with local (Exim 4.92) (envelope-from ) id 1lQBQM-0003Zo-Jp; Sat, 27 Mar 2021 16:04:30 +0000 Date: Sun, 28 Mar 2021 00:04:11 +0800 From: kernel test robot To: Mike Rapoport Cc: kbuild-all@lists.01.org, Linux Memory Management List , Andrew Morton Subject: [linux-next:master 7582/7588] arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_memfd_secret' Message-ID: <202103280008.TBpr2B0q-lkp@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="d6Gm4EdcadzBjdND" Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) X-Stat-Signature: 8zjeojhwtjf7kz9ax4wy6cir17comyk7 X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 2AAB6C0007C6 Received-SPF: none (intel.com>: No applicable sender policy available) receiver=imf14; identity=mailfrom; envelope-from=""; helo=mga05.intel.com; client-ip=192.55.52.43 X-HE-DKIM-Result: none/none X-HE-Tag: 1616861071-452869 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: --d6Gm4EdcadzBjdND Content-Type: text/plain; charset=us-ascii Content-Disposition: inline tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 931294922e65a23e1aad6398b9ae02df74044679 commit: fc3df4ba473dd7aed619933c8010b0f8a96db1df [7582/7588] mm: introduce memfd_secret system call to create "secret" memory areas config: x86_64-randconfig-r004-20210327 (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/next/linux-next.git/commit/?id=fc3df4ba473dd7aed619933c8010b0f8a96db1df git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout fc3df4ba473dd7aed619933c8010b0f8a96db1df # 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:342:1: note: in expansion of macro 'COND_SYSCALL' 342 | COND_SYSCALL(bpf); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_execveat' [-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:345:1: note: in expansion of macro 'COND_SYSCALL' 345 | COND_SYSCALL(execveat); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_userfaultfd' [-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:347:1: note: in expansion of macro 'COND_SYSCALL' 347 | COND_SYSCALL(userfaultfd); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_membarrier' [-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:350:1: note: in expansion of macro 'COND_SYSCALL' 350 | COND_SYSCALL(membarrier); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_mlock2' [-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:352:1: note: in expansion of macro 'COND_SYSCALL' 352 | COND_SYSCALL(mlock2); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_copy_file_range' [-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:354:1: note: in expansion of macro 'COND_SYSCALL' 354 | COND_SYSCALL(copy_file_range); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_pkey_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:357:1: note: in expansion of macro 'COND_SYSCALL' 357 | COND_SYSCALL(pkey_mprotect); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_pkey_alloc' [-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:358:1: note: in expansion of macro 'COND_SYSCALL' 358 | COND_SYSCALL(pkey_alloc); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_pkey_free' [-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:359:1: note: in expansion of macro 'COND_SYSCALL' 359 | COND_SYSCALL(pkey_free); | ^~~~~~~~~~~~ >> arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_memfd_secret' [-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:362:1: note: in expansion of macro 'COND_SYSCALL' 362 | COND_SYSCALL(memfd_secret); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_pciconfig_read' [-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:369:1: note: in expansion of macro 'COND_SYSCALL' 369 | COND_SYSCALL(pciconfig_read); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_pciconfig_write' [-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:370:1: note: in expansion of macro 'COND_SYSCALL' 370 | COND_SYSCALL(pciconfig_write); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_pciconfig_iobase' [-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:371:1: note: in expansion of macro 'COND_SYSCALL' 371 | COND_SYSCALL(pciconfig_iobase); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_socketcall' [-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:374:1: note: in expansion of macro 'COND_SYSCALL' 374 | COND_SYSCALL(socketcall); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x32_compat_sys_socketcall' [-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:375:1: note: in expansion of macro 'COND_SYSCALL_COMPAT' 375 | COND_SYSCALL_COMPAT(socketcall); | ^~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x32_compat_sys_fanotify_mark' [-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:378:1: note: in expansion of macro 'COND_SYSCALL_COMPAT' 378 | COND_SYSCALL_COMPAT(fanotify_mark); | ^~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_vm86old' [-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:381:1: note: in expansion of macro 'COND_SYSCALL' 381 | COND_SYSCALL(vm86old); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_modify_ldt' [-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_memfd_secret +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 a74d187c2df3a3 Brian Gerst 2020-03-13 88 #define __SYS_NI(abi, name) \ 290a4474d019c7 Brian Gerst 2020-03-24 89 SYSCALL_ALIAS(__##abi##_##name, sys_ni_posix_timers); a74d187c2df3a3 Brian Gerst 2020-03-13 90 4399e0cf494f73 Brian Gerst 2020-03-13 91 #ifdef CONFIG_X86_64 d2b5de495ee983 Brian Gerst 2020-03-13 92 #define __X64_SYS_STUB0(name) \ d2b5de495ee983 Brian Gerst 2020-03-13 93 __SYS_STUB0(x64, sys_##name) d2b5de495ee983 Brian Gerst 2020-03-13 94 4399e0cf494f73 Brian Gerst 2020-03-13 95 #define __X64_SYS_STUBx(x, name, ...) \ 4399e0cf494f73 Brian Gerst 2020-03-13 96 __SYS_STUBx(x64, sys##name, \ 4399e0cf494f73 Brian Gerst 2020-03-13 97 SC_X86_64_REGS_TO_ARGS(x, __VA_ARGS__)) 6cc8d2b286d9e7 Brian Gerst 2020-03-13 98 6cc8d2b286d9e7 Brian Gerst 2020-03-13 99 #define __X64_COND_SYSCALL(name) \ 6cc8d2b286d9e7 Brian Gerst 2020-03-13 @100 __COND_SYSCALL(x64, sys_##name) a74d187c2df3a3 Brian Gerst 2020-03-13 101 :::::: 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 --d6Gm4EdcadzBjdND Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 3oZ83974AQA= --d6Gm4EdcadzBjdND--