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.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,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 BFCA6C433E0 for ; Tue, 16 Mar 2021 19:04:05 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 01C1765140 for ; Tue, 16 Mar 2021 19:04:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 01C1765140 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 302ED6B0036; Tue, 16 Mar 2021 15:04:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 28D446B006C; Tue, 16 Mar 2021 15:04:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 091196B006E; Tue, 16 Mar 2021 15:04:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0204.hostedemail.com [216.40.44.204]) by kanga.kvack.org (Postfix) with ESMTP id D39C76B0036 for ; Tue, 16 Mar 2021 15:04:03 -0400 (EDT) Received: from smtpin13.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 8D3658249980 for ; Tue, 16 Mar 2021 19:04:03 +0000 (UTC) X-FDA: 77926662366.13.8829504 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by imf22.hostedemail.com (Postfix) with ESMTP id 1826DC001C53 for ; Tue, 16 Mar 2021 19:03:53 +0000 (UTC) IronPort-SDR: 5oJSszYV66DUSx3ib/9Vs0BkWOq8bB2CqmmxPlAkEy0XZ/mURvXcuSiINNf078IczLzaVMe+Ks KydCH4x+Ll8A== X-IronPort-AV: E=McAfee;i="6000,8403,9925"; a="188678955" X-IronPort-AV: E=Sophos;i="5.81,254,1610438400"; d="gz'50?scan'50,208,50";a="188678955" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Mar 2021 12:03:50 -0700 IronPort-SDR: cbHLH9Yp58mY15abK/agQOAmoNOd5WigKBUY6GA+A7P1bK6rOXvktypPNBmKtB5keFpYLQ2Mqs QtBlgqQQRKzw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,254,1610438400"; d="gz'50?scan'50,208,50";a="378968829" Received: from lkp-server02.sh.intel.com (HELO 1c294c63cb86) ([10.239.97.151]) by fmsmga007.fm.intel.com with ESMTP; 16 Mar 2021 12:03:47 -0700 Received: from kbuild by 1c294c63cb86 with local (Exim 4.92) (envelope-from ) id 1lMEyn-0000GX-1V; Tue, 16 Mar 2021 19:03:45 +0000 Date: Wed, 17 Mar 2021 03:03:15 +0800 From: kernel test robot To: Willem de Bruijn Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org, Andrew Morton , Linux Memory Management List Subject: arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_epoll_pwait2' Message-ID: <202103170305.fFKL2K8A-lkp@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="zhXaljGHf11kAtnf" Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) X-Stat-Signature: 73dh7g6b99a98ut3igmocjhrwwxhnckz X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 1826DC001C53 Received-SPF: none (intel.com>: No applicable sender policy available) receiver=imf22; identity=mailfrom; envelope-from=""; helo=mga14.intel.com; client-ip=192.55.52.115 X-HE-DKIM-Result: none/none X-HE-Tag: 1615921433-943238 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: --zhXaljGHf11kAtnf Content-Type: text/plain; charset=us-ascii Content-Disposition: inline tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 1df27313f50a57497c1faeb6a6ae4ca939c85a7d commit: b0a0c2615f6f199a656ed8549d7dce625d77aa77 epoll: wire up syscall epoll_pwait2 date: 3 months ago config: x86_64-randconfig-r015-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=b0a0c2615f6f199a656ed8549d7dce625d77aa77 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout b0a0c2615f6f199a656ed8549d7dce625d77aa77 # 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:48:1: note: in expansion of macro 'COND_SYSCALL' 48 | COND_SYSCALL(io_pgetevents); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_io_uring_setup' [-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:51:1: note: in expansion of macro 'COND_SYSCALL' 51 | COND_SYSCALL(io_uring_setup); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_io_uring_enter' [-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:52:1: note: in expansion of macro 'COND_SYSCALL' 52 | COND_SYSCALL(io_uring_enter); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_io_uring_register' [-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:53:1: note: in expansion of macro 'COND_SYSCALL' 53 | COND_SYSCALL(io_uring_register); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_lookup_dcookie' [-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:60:1: note: in expansion of macro 'COND_SYSCALL' 60 | COND_SYSCALL(lookup_dcookie); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_eventfd2' [-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:64:1: note: in expansion of macro 'COND_SYSCALL' 64 | COND_SYSCALL(eventfd2); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_epoll_create1' [-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:67:1: note: in expansion of macro 'COND_SYSCALL' 67 | COND_SYSCALL(epoll_create1); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_epoll_ctl' [-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:68:1: note: in expansion of macro 'COND_SYSCALL' 68 | COND_SYSCALL(epoll_ctl); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_epoll_pwait' [-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:69:1: note: in expansion of macro 'COND_SYSCALL' 69 | COND_SYSCALL(epoll_pwait); | ^~~~~~~~~~~~ >> arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_epoll_pwait2' [-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:71:1: note: in expansion of macro 'COND_SYSCALL' 71 | COND_SYSCALL(epoll_pwait2); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_inotify_init1' [-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:77:1: note: in expansion of macro 'COND_SYSCALL' 77 | COND_SYSCALL(inotify_init1); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_inotify_add_watch' [-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:78:1: note: in expansion of macro 'COND_SYSCALL' 78 | COND_SYSCALL(inotify_add_watch); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_inotify_rm_watch' [-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:79:1: note: in expansion of macro 'COND_SYSCALL' 79 | COND_SYSCALL(inotify_rm_watch); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_ioprio_set' [-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:84:1: note: in expansion of macro 'COND_SYSCALL' 84 | COND_SYSCALL(ioprio_set); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_ioprio_get' [-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:85:1: note: in expansion of macro 'COND_SYSCALL' 85 | COND_SYSCALL(ioprio_get); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_flock' [-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:88:1: note: in expansion of macro 'COND_SYSCALL' 88 | COND_SYSCALL(flock); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_quotactl' [-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:101:1: note: in expansion of macro 'COND_SYSCALL' 101 | COND_SYSCALL(quotactl); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_signalfd4' [-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_epoll_pwait2 +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 --zhXaljGHf11kAtnf Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 --zhXaljGHf11kAtnf--