All of lore.kernel.org
 help / color / mirror / Atom feed
* [ardb:arm64-head-refactor-v4 23/38] arch/arm64/kernel/pi/kaslr_early.c:95:17: error: call to undeclared function '__early_cpu_has_rndr'; ISO C99 and later do not support implicit function declarations
@ 2022-04-28 22:02 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-04-28 22:02 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: llvm, kbuild-all, linux-kernel

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git arm64-head-refactor-v4
head:   9e199441095c2a38ba1019e8f782e9fd10876da9
commit: b116ed6cbb1b583ebf32c54fff16e0b3e62fad4f [23/38] arm64: head: relocate kernel only a single time if KASLR is enabled
config: arm64-randconfig-r014-20220428 (https://download.01.org/0day-ci/archive/20220429/202204290528.NFbq0iMb-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project c59473aacce38cd7dd77eebceaf3c98c5707ab3b)
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 arm64 cross compiling tool for clang build
        # apt-get install binutils-aarch64-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/commit/?id=b116ed6cbb1b583ebf32c54fff16e0b3e62fad4f
        git remote add ardb git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git
        git fetch --no-tags ardb arm64-head-refactor-v4
        git checkout b116ed6cbb1b583ebf32c54fff16e0b3e62fad4f
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash

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

All errors (new ones prefixed by >>):

>> arch/arm64/kernel/pi/kaslr_early.c:95:17: error: call to undeclared function '__early_cpu_has_rndr'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
           if (!seed && (!__early_cpu_has_rndr() ||
                          ^
>> arch/arm64/kernel/pi/kaslr_early.c:96:10: error: call to undeclared function '__arm64_rndr'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
                         !__arm64_rndr((unsigned long *)&seed)))
                          ^
   arch/arm64/kernel/pi/kaslr_early.c:87:16: warning: no previous prototype for function 'kaslr_early_init' [-Wmissing-prototypes]
   asmlinkage u64 kaslr_early_init(const void *fdt)
                  ^
   arch/arm64/kernel/pi/kaslr_early.c:87:12: note: declare 'static' if the function is not intended to be used outside of this translation unit
   asmlinkage u64 kaslr_early_init(const void *fdt)
              ^
              static 
   1 warning and 2 errors generated.


vim +/__early_cpu_has_rndr +95 arch/arm64/kernel/pi/kaslr_early.c

    86	
    87	asmlinkage u64 kaslr_early_init(const void *fdt)
    88	{
    89		u64 seed, mask, offset;
    90	
    91		if (is_kaslr_disabled_cmdline(fdt))
    92			return 0;
    93	
    94		seed = get_kaslr_seed(fdt);
  > 95		if (!seed && (!__early_cpu_has_rndr() ||
  > 96			      !__arm64_rndr((unsigned long *)&seed)))
    97			return 0;
    98	
    99		/*
   100		 * OK, so we are proceeding with KASLR enabled. Calculate a suitable
   101		 * kernel image offset from the seed. Let's place the kernel in the
   102		 * middle half of the VMALLOC area (VA_BITS_MIN - 2), and stay clear of
   103		 * the lower and upper quarters to avoid colliding with other
   104		 * allocations.
   105		 * Even if we could randomize at page granularity for 16k and 64k pages,
   106		 * let's always round to 2 MB so we don't interfere with the ability to
   107		 * map using contiguous PTEs
   108		 */
   109		mask = ((1UL << (VA_BITS_MIN - 2)) - 1) & ~(SZ_2M - 1);
   110		offset = BIT(VA_BITS_MIN - 3) + (seed & mask);
   111	
   112		if (!IS_ENABLED(CONFIG_KASAN_VMALLOC) &&
   113		    (IS_ENABLED(CONFIG_KASAN_GENERIC) ||
   114		     IS_ENABLED(CONFIG_KASAN_SW_TAGS)))
   115			/*
   116			 * KASAN without KASAN_VMALLOC does not expect the module region
   117			 * to intersect the vmalloc region, since shadow memory is
   118			 * allocated for each module at load time, whereas the vmalloc
   119			 * region is shadowed by KASAN zero pages. So keep modules
   120			 * out of the vmalloc region if KASAN is enabled without
   121			 * KASAN_VMALLOC, and put the kernel well within 4 GB of the
   122			 * module region.
   123			 */
   124			return offset % SZ_2G;
   125	
   126		return offset;
   127	}
   128	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-04-28 22:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-28 22:02 [ardb:arm64-head-refactor-v4 23/38] arch/arm64/kernel/pi/kaslr_early.c:95:17: error: call to undeclared function '__early_cpu_has_rndr'; ISO C99 and later do not support implicit function declarations kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.