[ardb:efi-psci 2/3] include/linux/efi.h:1190:9: error: implicit declaration of function 'arch_efi_call_virt_setup'

From: kernel test robot
Date: Wed Feb 09 2022 - 13:50:11 EST


tree: git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git efi-psci
head: bd0da69cbeaed7490a6f8e3df789fe72645cd37f
commit: 2f97f24371a482f0273be1de7164eb59cd427cf9 [2/3] efi: arm: implement PSCI method backed by EFI runtime code
config: arm-allyesconfig (https://download.01.org/0day-ci/archive/20220210/202202100235.AZGXkf7b-lkp@xxxxxxxxx/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/commit/?id=2f97f24371a482f0273be1de7164eb59cd427cf9
git remote add ardb git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git
git fetch --no-tags ardb efi-psci
git checkout 2f97f24371a482f0273be1de7164eb59cd427cf9
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

In file included from drivers/firmware/psci/psci.c:12:
drivers/firmware/psci/psci.c: In function '__invoke_psci_fn_efi':
>> include/linux/efi.h:1190:9: error: implicit declaration of function 'arch_efi_call_virt_setup' [-Werror=implicit-function-declaration]
1190 | arch_efi_call_virt_setup(); \
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/firmware/psci/psci.c:139:16: note: in expansion of macro 'efi_call_virt_pointer'
139 | return efi_call_virt_pointer((&efi_psci), psci_handler, function_id,
| ^~~~~~~~~~~~~~~~~~~~~
>> include/linux/efi.h:1193:15: error: implicit declaration of function 'arch_efi_call_virt' [-Werror=implicit-function-declaration]
1193 | __s = arch_efi_call_virt(p, f, args); \
| ^~~~~~~~~~~~~~~~~~
drivers/firmware/psci/psci.c:139:16: note: in expansion of macro 'efi_call_virt_pointer'
139 | return efi_call_virt_pointer((&efi_psci), psci_handler, function_id,
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/firmware/psci/psci.c:139:51: error: 'psci_handler' undeclared (first use in this function); did you mean 'proc_handler'?
139 | return efi_call_virt_pointer((&efi_psci), psci_handler, function_id,
| ^~~~~~~~~~~~
include/linux/efi.h:1193:37: note: in definition of macro 'efi_call_virt_pointer'
1193 | __s = arch_efi_call_virt(p, f, args); \
| ^
drivers/firmware/psci/psci.c:139:51: note: each undeclared identifier is reported only once for each function it appears in
139 | return efi_call_virt_pointer((&efi_psci), psci_handler, function_id,
| ^~~~~~~~~~~~
include/linux/efi.h:1193:37: note: in definition of macro 'efi_call_virt_pointer'
1193 | __s = arch_efi_call_virt(p, f, args); \
| ^
>> include/linux/efi.h:1196:9: error: implicit declaration of function 'arch_efi_call_virt_teardown' [-Werror=implicit-function-declaration]
1196 | arch_efi_call_virt_teardown(); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/firmware/psci/psci.c:139:16: note: in expansion of macro 'efi_call_virt_pointer'
139 | return efi_call_virt_pointer((&efi_psci), psci_handler, function_id,
| ^~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors


vim +/arch_efi_call_virt_setup +1190 include/linux/efi.h

0d95981438c3bdb Dominik Brodowski 2019-11-06 1164
80e75596079f0a4 Alex Thorlton 2016-06-25 1165 /*
80e75596079f0a4 Alex Thorlton 2016-06-25 1166 * Arch code can implement the following three template macros, avoiding
80e75596079f0a4 Alex Thorlton 2016-06-25 1167 * reptition for the void/non-void return cases of {__,}efi_call_virt():
80e75596079f0a4 Alex Thorlton 2016-06-25 1168 *
80e75596079f0a4 Alex Thorlton 2016-06-25 1169 * * arch_efi_call_virt_setup()
80e75596079f0a4 Alex Thorlton 2016-06-25 1170 *
80e75596079f0a4 Alex Thorlton 2016-06-25 1171 * Sets up the environment for the call (e.g. switching page tables,
80e75596079f0a4 Alex Thorlton 2016-06-25 1172 * allowing kernel-mode use of floating point, if required).
80e75596079f0a4 Alex Thorlton 2016-06-25 1173 *
80e75596079f0a4 Alex Thorlton 2016-06-25 1174 * * arch_efi_call_virt()
80e75596079f0a4 Alex Thorlton 2016-06-25 1175 *
80e75596079f0a4 Alex Thorlton 2016-06-25 1176 * Performs the call. The last expression in the macro must be the call
80e75596079f0a4 Alex Thorlton 2016-06-25 1177 * itself, allowing the logic to be shared by the void and non-void
80e75596079f0a4 Alex Thorlton 2016-06-25 1178 * cases.
80e75596079f0a4 Alex Thorlton 2016-06-25 1179 *
80e75596079f0a4 Alex Thorlton 2016-06-25 1180 * * arch_efi_call_virt_teardown()
80e75596079f0a4 Alex Thorlton 2016-06-25 1181 *
80e75596079f0a4 Alex Thorlton 2016-06-25 1182 * Restores the usual kernel environment once the call has returned.
80e75596079f0a4 Alex Thorlton 2016-06-25 1183 */
80e75596079f0a4 Alex Thorlton 2016-06-25 1184
80e75596079f0a4 Alex Thorlton 2016-06-25 1185 #define efi_call_virt_pointer(p, f, args...) \
80e75596079f0a4 Alex Thorlton 2016-06-25 1186 ({ \
80e75596079f0a4 Alex Thorlton 2016-06-25 1187 efi_status_t __s; \
80e75596079f0a4 Alex Thorlton 2016-06-25 1188 unsigned long __flags; \
80e75596079f0a4 Alex Thorlton 2016-06-25 1189 \
80e75596079f0a4 Alex Thorlton 2016-06-25 @1190 arch_efi_call_virt_setup(); \
80e75596079f0a4 Alex Thorlton 2016-06-25 1191 \
13b210ddf474d9f Julien Thierry 2019-01-31 1192 __flags = efi_call_virt_save_flags(); \
80e75596079f0a4 Alex Thorlton 2016-06-25 @1193 __s = arch_efi_call_virt(p, f, args); \
80e75596079f0a4 Alex Thorlton 2016-06-25 1194 efi_call_virt_check_flags(__flags, __stringify(f)); \
80e75596079f0a4 Alex Thorlton 2016-06-25 1195 \
80e75596079f0a4 Alex Thorlton 2016-06-25 @1196 arch_efi_call_virt_teardown(); \
80e75596079f0a4 Alex Thorlton 2016-06-25 1197 \
80e75596079f0a4 Alex Thorlton 2016-06-25 1198 __s; \
80e75596079f0a4 Alex Thorlton 2016-06-25 1199 })
80e75596079f0a4 Alex Thorlton 2016-06-25 1200

:::::: The code at line 1190 was first introduced by commit
:::::: 80e75596079f0a41f905836ad0ccaac68ba33612 efi: Convert efi_call_virt() to efi_call_virt_pointer()

:::::: TO: Alex Thorlton <athorlton@xxxxxxx>
:::::: CC: Ingo Molnar <mingo@xxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx