tree:
git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git efi-psci
head: d78fdf5ff0f616e7923deb07ecce44ca3eb12788
commit: d78fdf5ff0f616e7923deb07ecce44ca3eb12788 [3/3] efi: arm: implement PSCI method
backed by EFI runtime code
config: arm-allyesconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.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...
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 d78fdf5ff0f616e7923deb07ecce44ca3eb12788
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
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:1156:2: error: implicit declaration of
function 'arch_efi_call_virt_setup' [-Werror=implicit-function-declaration]
1156 | arch_efi_call_virt_setup(); \
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/firmware/psci/psci.c:137:9: note: in expansion of macro
'efi_call_virt_pointer'
137 | return efi_call_virt_pointer((&efi_psci), psci_handler, function_id,
| ^~~~~~~~~~~~~~~~~~~~~
> include/linux/efi.h:1159:8: error: implicit declaration of
function 'arch_efi_call_virt' [-Werror=implicit-function-declaration]
1159 | __s = arch_efi_call_virt(p, f, args); \
| ^~~~~~~~~~~~~~~~~~
drivers/firmware/psci/psci.c:137:9: note: in expansion of macro
'efi_call_virt_pointer'
137 | return efi_call_virt_pointer((&efi_psci), psci_handler, function_id,
| ^~~~~~~~~~~~~~~~~~~~~
> drivers/firmware/psci/psci.c:137:44: error:
'psci_handler' undeclared (first use in this function); did you mean
'proc_handler'?
137 | return efi_call_virt_pointer((&efi_psci),
psci_handler, function_id,
| ^~~~~~~~~~~~
include/linux/efi.h:1159:30: note: in definition of macro
'efi_call_virt_pointer'
1159 | __s = arch_efi_call_virt(p, f, args); \
| ^
drivers/firmware/psci/psci.c:137:44: note: each undeclared identifier is reported only
once for each function it appears in
137 | return efi_call_virt_pointer((&efi_psci), psci_handler, function_id,
| ^~~~~~~~~~~~
include/linux/efi.h:1159:30: note: in definition of macro
'efi_call_virt_pointer'
1159 | __s = arch_efi_call_virt(p, f, args); \
| ^
> include/linux/efi.h:1162:2: error: implicit declaration of
function 'arch_efi_call_virt_teardown' [-Werror=implicit-function-declaration]
1162 | arch_efi_call_virt_teardown(); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/firmware/psci/psci.c:137:9: note: in expansion of macro
'efi_call_virt_pointer'
137 | return efi_call_virt_pointer((&efi_psci), psci_handler, function_id,
| ^~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/arch_efi_call_virt_setup +1156 include/linux/efi.h
33b6d03469b220 Thiebaud Weksteen 2017-09-20 1130
80e75596079f0a Alex Thorlton 2016-06-25 1131 /*
80e75596079f0a Alex Thorlton 2016-06-25 1132 * Arch code can implement the
following three template macros, avoiding
80e75596079f0a Alex Thorlton 2016-06-25 1133 * reptition for the void/non-void
return cases of {__,}efi_call_virt():
80e75596079f0a Alex Thorlton 2016-06-25 1134 *
80e75596079f0a Alex Thorlton 2016-06-25 1135 * * arch_efi_call_virt_setup()
80e75596079f0a Alex Thorlton 2016-06-25 1136 *
80e75596079f0a Alex Thorlton 2016-06-25 1137 * Sets up the environment for the
call (e.g. switching page tables,
80e75596079f0a Alex Thorlton 2016-06-25 1138 * allowing kernel-mode use of
floating point, if required).
80e75596079f0a Alex Thorlton 2016-06-25 1139 *
80e75596079f0a Alex Thorlton 2016-06-25 1140 * * arch_efi_call_virt()
80e75596079f0a Alex Thorlton 2016-06-25 1141 *
80e75596079f0a Alex Thorlton 2016-06-25 1142 * Performs the call. The last
expression in the macro must be the call
80e75596079f0a Alex Thorlton 2016-06-25 1143 * itself, allowing the logic to be
shared by the void and non-void
80e75596079f0a Alex Thorlton 2016-06-25 1144 * cases.
80e75596079f0a Alex Thorlton 2016-06-25 1145 *
80e75596079f0a Alex Thorlton 2016-06-25 1146 * * arch_efi_call_virt_teardown()
80e75596079f0a Alex Thorlton 2016-06-25 1147 *
80e75596079f0a Alex Thorlton 2016-06-25 1148 * Restores the usual kernel
environment once the call has returned.
80e75596079f0a Alex Thorlton 2016-06-25 1149 */
80e75596079f0a Alex Thorlton 2016-06-25 1150
80e75596079f0a Alex Thorlton 2016-06-25 1151 #define efi_call_virt_pointer(p, f,
args...) \
80e75596079f0a Alex Thorlton 2016-06-25 1152 ({ \
80e75596079f0a Alex Thorlton 2016-06-25 1153 efi_status_t __s; \
80e75596079f0a Alex Thorlton 2016-06-25 1154 unsigned long __flags; \
80e75596079f0a Alex Thorlton 2016-06-25 1155 \
80e75596079f0a Alex Thorlton 2016-06-25 @1156 arch_efi_call_virt_setup(); \
80e75596079f0a Alex Thorlton 2016-06-25 1157 \
13b210ddf474d9 Julien Thierry 2019-01-31 1158 __flags =
efi_call_virt_save_flags(); \
80e75596079f0a Alex Thorlton 2016-06-25 @1159 __s = arch_efi_call_virt(p, f,
args); \
80e75596079f0a Alex Thorlton 2016-06-25 1160 efi_call_virt_check_flags(__flags,
__stringify(f)); \
80e75596079f0a Alex Thorlton 2016-06-25 1161 \
80e75596079f0a Alex Thorlton 2016-06-25 @1162 arch_efi_call_virt_teardown(); \
80e75596079f0a Alex Thorlton 2016-06-25 1163 \
80e75596079f0a Alex Thorlton 2016-06-25 1164 __s; \
80e75596079f0a Alex Thorlton 2016-06-25 1165 })
80e75596079f0a Alex Thorlton 2016-06-25 1166
:::::: The code at line 1156 was first introduced by commit
:::::: 80e75596079f0a41f905836ad0ccaac68ba33612 efi: Convert efi_call_virt() to
efi_call_virt_pointer()
:::::: TO: Alex Thorlton <athorlton(a)sgi.com>
:::::: CC: Ingo Molnar <mingo(a)kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org