[joro:sev-es-kexec 1/12] kernel/kexec.c:198:13: warning: no previous prototype for function 'arch_kexec_supported'

From: kernel test robot
Date: Sun Jul 04 2021 - 01:43:13 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/joro/linux.git sev-es-kexec
head: 3467dc3cdbe65c619cd9b5c8db47da63b0655300
commit: 4eeabbfae0a6163e935a6462acc02fe4f17d3680 [1/12] kexec: Allow architecture code to opt-out at runtime
config: powerpc-randconfig-r005-20210702 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 9eb613b2de3163686b1a4bd1160f15ac56a4b083)
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
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/joro/linux.git/commit/?id=4eeabbfae0a6163e935a6462acc02fe4f17d3680
git remote add joro https://git.kernel.org/pub/scm/linux/kernel/git/joro/linux.git
git fetch --no-tags joro sev-es-kexec
git checkout 4eeabbfae0a6163e935a6462acc02fe4f17d3680
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc

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

All warnings (new ones prefixed by >>):

In file included from kernel/kexec.c:10:
In file included from include/linux/mm.h:9:
In file included from include/linux/mmdebug.h:5:
In file included from include/linux/bug.h:5:
In file included from arch/powerpc/include/asm/bug.h:109:
In file included from include/asm-generic/bug.h:20:
In file included from include/linux/kernel.h:12:
In file included from include/linux/bitops.h:32:
In file included from arch/powerpc/include/asm/bitops.h:62:
arch/powerpc/include/asm/barrier.h:49:9: warning: '__lwsync' macro redefined [-Wmacro-redefined]
#define __lwsync() __asm__ __volatile__ (stringify_in_c(LWSYNC) : : :"memory")
^
<built-in>:308:9: note: previous definition is here
#define __lwsync __builtin_ppc_lwsync
^
>> kernel/kexec.c:198:13: warning: no previous prototype for function 'arch_kexec_supported' [-Wmissing-prototypes]
bool __weak arch_kexec_supported(void)
^
kernel/kexec.c:198:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
bool __weak arch_kexec_supported(void)
^
static
2 warnings generated.


vim +/arch_kexec_supported +198 kernel/kexec.c

176
177 /*
178 * Exec Kernel system call: for obvious reasons only root may call it.
179 *
180 * This call breaks up into three pieces.
181 * - A generic part which loads the new kernel from the current
182 * address space, and very carefully places the data in the
183 * allocated pages.
184 *
185 * - A generic part that interacts with the kernel and tells all of
186 * the devices to shut down. Preventing on-going dmas, and placing
187 * the devices in a consistent state so a later kernel can
188 * reinitialize them.
189 *
190 * - A machine specific part that includes the syscall number
191 * and then copies the image to it's final destination. And
192 * jumps into the image at entry.
193 *
194 * kexec does not sync, or unmount filesystems so if you need
195 * that to happen you need to do that yourself.
196 */
197
> 198 bool __weak arch_kexec_supported(void)
199 {
200 return true;
201 }
202

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

Attachment: .config.gz
Description: application/gzip