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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 757D4C77B61 for ; Fri, 28 Apr 2023 14:47:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D3A096B0071; Fri, 28 Apr 2023 10:47:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CEBEF6B0072; Fri, 28 Apr 2023 10:47:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BB2646B0074; Fri, 28 Apr 2023 10:47:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id ABBB06B0071 for ; Fri, 28 Apr 2023 10:47:44 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 566F7ACE13 for ; Fri, 28 Apr 2023 14:47:44 +0000 (UTC) X-FDA: 80731078848.23.7F27A3E Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by imf05.hostedemail.com (Postfix) with ESMTP id 2AC88100014 for ; Fri, 28 Apr 2023 14:47:39 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=eeKemycL; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf05.hostedemail.com: domain of lkp@intel.com designates 192.55.52.136 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1682693261; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=qTCeun2YrOSoNEzoeOt2MeDIUHqsnaCEJhWxdEOo2Nk=; b=b9d7v63LJciYsn0lWXgf05KPcyMLisCZubERrpaT0+hpdhxBUmvqdnemdUgbDNKzr0KaQJ rwffdqUlq93onUYqsy3Cc5wIwaRQWZsMz5qHjCqRpv/GjKP+NdKnL9MhDWd73HLZBw58Lg Ax5Cg+Sour0AE2jJVNNSEJLbqZiW4rM= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=eeKemycL; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf05.hostedemail.com: domain of lkp@intel.com designates 192.55.52.136 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1682693261; a=rsa-sha256; cv=none; b=EeJnb+nc8ngCIwu4P09proyS85CN82gZjGEDGv7o7lEj5Ct7GJoXzzYQc/umAUWZsd7M0O 6XxynMmQLPR0N9uGCxlxNA1VcHtHXovzUFfO1N6QJAddXg4apTkuQYO6TpzRO/pDwmSRo+ fZF6jEj/wOrBqueAmdAUXFF+tuvpAcE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1682693260; x=1714229260; h=date:from:to:cc:subject:message-id:mime-version; bh=PY2JgP9bc992a47wfhzuBPjCA72+mowo9SP9JVCXvLo=; b=eeKemycL9H2Uu4XQ7mOHVI11nNn7Guk0+t4BtATNLNusUiCEd544q4X0 zAmii0ke+vFm+dNaM2per9STBK8Xd9D2+CnbDSc3YsQ8USM5vEJ3/qVLe Afa0bBi3WygMjEW5EU2kYbMMJGIKNgbLmgKw0dOlTP/f9cOzMKwq7rmkT 3r83G6oWKBKtlF9djDnu+1UqlD5zxRBcfQg+PpSd13yZ/thOEnRkAczNe RTEB+W0j1/dpQsmoI6SdSWm3YdXSZjhlbbQuqWMenspwbqeUjLTIBpUHX rfawmhXMoQ3P6ZOhh8Pviqa0TrG36V6wTUZW9aD7amlbwceFe0NxEj5W+ w==; X-IronPort-AV: E=McAfee;i="6600,9927,10694"; a="327390297" X-IronPort-AV: E=Sophos;i="5.99,234,1677571200"; d="scan'208";a="327390297" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Apr 2023 07:47:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10694"; a="725377539" X-IronPort-AV: E=Sophos;i="5.99,234,1677571200"; d="scan'208";a="725377539" Received: from lkp-server01.sh.intel.com (HELO 5bad9d2b7fcb) ([10.239.97.150]) by orsmga008.jf.intel.com with ESMTP; 28 Apr 2023 07:47:36 -0700 Received: from kbuild by 5bad9d2b7fcb with local (Exim 4.96) (envelope-from ) id 1psPNn-0000Vj-1W; Fri, 28 Apr 2023 14:47:35 +0000 Date: Fri, 28 Apr 2023 22:47:20 +0800 From: kernel test robot To: Suren Baghdasaryan Cc: oe-kbuild-all@lists.linux.dev, Andrew Morton , Linux Memory Management List Subject: [sudeep-holla:android13-5.10/ffa 8920/9999] arch/x86/include/asm/syscall_wrapper.h:83:21: warning: no previous prototype for '__x64_sys_process_mrelease' Message-ID: <202304282223.x6FbxQD9-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 2AC88100014 X-Stat-Signature: zya7qkttmpsnc4778oxo5x9nta3bnkk7 X-HE-Tag: 1682693259-637777 X-HE-Meta: U2FsdGVkX19zeBlt9VlTRcmxWPXhcZvggTHq1IBTUIvdTOC5RllBR6eEThmZdiNdZVzkJKe/8zhCtthOtm4EhueiwEaB6d8pYD86QZJ1dsy+bLgFSa+jUG7kkULwCu+8eF+TLY1JKvV+WQXtdJ56goT6noX1tyrLsp/zreZUNKNQ/r1pnWnztxM2piPxHuT9WcOh0eZeLNnDmhPcQRXLBRdYd7Ft8H/7nFSqPWXTErI5RmID6xxc07PQk6u3+1wjady8HsLmxAWFocmeUX+jVu3NcZFC1MGscoe/1qhk4U5v64Eaa5PV2dxibc8nO8ozSq95w6vSBSdAlUF4xMDN/DxYJ8sfzRwz9eh0WLwJ0l/tE7dAVV9lwQfIhq9h89e+CBw2Nequw7A87UufUrOqGAHwf/ISDsS2IdNBpkyH0/1r6Ozu8QuN+q9wsNWJ8hwHEDxG1rWtMFZdGCX49ORrsawFjqWN2MgJoXM4qYothjgFzjxmQnMp2KIF8C+r/ZZRty6+mahcLp2OAEM32qahSuVhAd671WpuyI+0COSCv5LpIENa+IMB86fyqqJ6D5gWXKN/lO3jT+bLqQUmQ3Avfvx9TiKLegCMSib+2v84kwxc4MYaSn9iZduAgoLlQOyJhWAZ30OkW2zuHSIiN5yJK2OQxfBYUbUSTlIE6kFy4QR/GBwZUg4f5dc35ZJ0jsFuhte7nBHagFCmqa2wfK+B7/O1s7TlSLBkSU7q3AAvDyF9BEXudAyhp64jWemZEzGYrxEAHBtX8Cb8wPmJMDoFf3F6b8oQ6/Gs27XdX5E8DXQQuolqP2M7iNAlz5gbWtyJ86luwywIRUod7gODU6UEtu9PFv5mgSRFnG9A+ki9uVVqDWxc20LQjYLOO0gGWtCgxgouszH0Uuj1AZ5PyLcWdGPhB0qjmV/i82XQbrU0rGH6W9XVgY3Pd8zJEkA7m2P18uCfzbT+4ncig7TN78d mqLxzM5O edIGCpjdt1h921foLkQEW7J4KE8BL8vDqTR61DL9n+pz5iwSQ1I4IXnPyaQZ3J8/Ec4OK2SGCBcH83U8b6Ez5p9k1FX7t4iTZ1Jy9Dmx14sCUyDyOExJ0QwoXCgB42FVNzbwPmnw29Rqzd0UJmfKK0Ctls2Lnbn0zpg7pn8guPYkThozBd5GjGDpe6S5D5EfTrELMFfTB5EC72dv55GmMkJfbRSMtY3EBaLTd3SSHrNrJpKOzCEaEWQeHOw7BnBGKqc5XJY9qm/NNF0SZxvR4vYd/RnSLZaLocp6NYqeDNh2meCw0g360x2ATy/Pxdf80FR0YGItcGmxGApc/5ES496xFuoty+w1Hhf4emfL2Vi/ozI47uzNP6PjFMQ== 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: tree: https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux.git android13-5.10/ffa head: 9e12ac4f9c69befe08119567c073adc938aafc4d commit: 11a2f368e4bc4d124edb9ed23d88b9ee7aecbf65 [8920/9999] UPSTREAM: mm: wire up syscall process_mrelease config: x86_64-randconfig-a013 (https://download.01.org/0day-ci/archive/20230428/202304282223.x6FbxQD9-lkp@intel.com/config) compiler: gcc-11 (Debian 11.3.0-12) 11.3.0 reproduce (this is a W=1 build): # https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux.git/commit/?id=11a2f368e4bc4d124edb9ed23d88b9ee7aecbf65 git remote add sudeep-holla https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux.git git fetch --no-tags sudeep-holla android13-5.10/ffa git checkout 11a2f368e4bc4d124edb9ed23d88b9ee7aecbf65 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=x86_64 olddefconfig make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot | Link: https://lore.kernel.org/oe-kbuild-all/202304282223.x6FbxQD9-lkp@intel.com/ All warnings (new ones prefixed by >>): | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:275:1: note: in expansion of macro 'COND_SYSCALL' 275 | COND_SYSCALL(mprotect); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: 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:9: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:9: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:276:1: note: in expansion of macro 'COND_SYSCALL' 276 | COND_SYSCALL(msync); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: 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:9: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:9: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:277:1: note: in expansion of macro 'COND_SYSCALL' 277 | COND_SYSCALL(mlock); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: 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:9: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:9: 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(munlock); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: 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:9: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:9: 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(mlockall); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: warning: no previous prototype for '__x64_sys_munlockall' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:9: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:9: 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(munlockall); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: warning: no previous prototype for '__x64_sys_mincore' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:9: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:9: 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(mincore); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: warning: no previous prototype for '__x64_sys_madvise' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:9: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:9: 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(madvise); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: warning: no previous prototype for '__x64_sys_process_madvise' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:9: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:9: 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(process_madvise); | ^~~~~~~~~~~~ >> arch/x86/include/asm/syscall_wrapper.h:83:21: warning: no previous prototype for '__x64_sys_process_mrelease' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:9: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:9: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:284:1: note: in expansion of macro 'COND_SYSCALL' 284 | COND_SYSCALL(process_mrelease); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: warning: no previous prototype for '__x64_sys_remap_file_pages' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:9: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:9: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:285:1: note: in expansion of macro 'COND_SYSCALL' 285 | COND_SYSCALL(remap_file_pages); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: warning: no previous prototype for '__x64_sys_mbind' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:9: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:9: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:286:1: note: in expansion of macro 'COND_SYSCALL' 286 | COND_SYSCALL(mbind); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: warning: no previous prototype for '__x32_compat_sys_mbind' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:175:9: note: in expansion of macro '__COND_SYSCALL' 175 | __COND_SYSCALL(x32, compat_sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:219:9: note: in expansion of macro '__X32_COMPAT_COND_SYSCALL' 219 | __X32_COMPAT_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:287:1: note: in expansion of macro 'COND_SYSCALL_COMPAT' 287 | COND_SYSCALL_COMPAT(mbind); | ^~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: warning: no previous prototype for '__x64_sys_get_mempolicy' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:9: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:9: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:288:1: note: in expansion of macro 'COND_SYSCALL' 288 | COND_SYSCALL(get_mempolicy); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: warning: no previous prototype for '__x32_compat_sys_get_mempolicy' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:175:9: note: in expansion of macro '__COND_SYSCALL' 175 | __COND_SYSCALL(x32, compat_sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:219:9: note: in expansion of macro '__X32_COMPAT_COND_SYSCALL' 219 | __X32_COMPAT_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:289:1: note: in expansion of macro 'COND_SYSCALL_COMPAT' 289 | COND_SYSCALL_COMPAT(get_mempolicy); | ^~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: warning: no previous prototype for '__x64_sys_set_mempolicy' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:9: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:256:9: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:290:1: note: in expansion of macro 'COND_SYSCALL' 290 | COND_SYSCALL(set_mempolicy); | ^~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: warning: no previous prototype for '__x32_compat_sys_set_mempolicy' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:175:9: note: in expansion of macro '__COND_SYSCALL' 175 | __COND_SYSCALL(x32, compat_sys_##name) | ^~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:219:9: note: in expansion of macro '__X32_COMPAT_COND_SYSCALL' 219 | __X32_COMPAT_COND_SYSCALL(name) | ^~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sys_ni.c:291:1: note: in expansion of macro 'COND_SYSCALL_COMPAT' 291 | COND_SYSCALL_COMPAT(set_mempolicy); | ^~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/syscall_wrapper.h:83:21: warning: no previous prototype for '__x64_sys_migrate_pages' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ arch/x86/include/asm/syscall_wrapper.h:100:9: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) vim +/__x64_sys_process_mrelease +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 https://github.com/intel/lkp-tests