Hi Alexandre, kernel test robot noticed the following build warnings: [auto build test WARNING on linus/master] [also build test WARNING on v6.5-rc2 next-20230721] [cannot apply to efi/next] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Alexandre-Ghiti/riscv-Introduce-virtual-kernel-mapping-KASLR/20230721-155554 base: linus/master patch link: https://lore.kernel.org/r/20230721074850.310644-4-alexghiti%40rivosinc.com patch subject: [PATCH v5 3/5] arm64: libstub: Move KASLR handling functions to kaslr.c config: i386-randconfig-i002-20230721 (https://download.01.org/0day-ci/archive/20230722/202307220545.aNYBwGqt-lkp@xxxxxxxxx/config) compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project.git 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a) reproduce: (https://download.01.org/0day-ci/archive/20230722/202307220545.aNYBwGqt-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202307220545.aNYBwGqt-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> drivers/firmware/efi/libstub/kaslr.c:113:23: warning: call to undeclared function 'efi_get_kimg_min_align'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] u64 min_kimg_align = efi_get_kimg_min_align(); ^ >> drivers/firmware/efi/libstub/kaslr.c:155:2: warning: call to undeclared function 'efi_icache_sync'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] efi_icache_sync(*image_addr, *image_addr + kernel_codesize); ^ 2 warnings generated. vim +/efi_get_kimg_min_align +113 drivers/firmware/efi/libstub/kaslr.c 87 88 /** 89 * efi_kaslr_relocate_kernel() - Relocate the kernel (random if KASLR enabled) 90 * @image_addr: Pointer to the current kernel location 91 * @reserve_addr: Pointer to the relocated kernel location 92 * @reserve_size: Size of the relocated kernel 93 * @kernel_size: Size of the text + data 94 * @kernel_codesize: Size of the text 95 * @kernel_memsize: Size of the text + data + bss 96 * @phys_seed: Random seed used for the relocation 97 * 98 * If KASLR is not enabled, this function relocates the kernel to a fixed 99 * address (or leave it as its current location). If KASLR is enabled, the 100 * kernel physical location is randomized using the seed in parameter. 101 * 102 * Return: status code, EFI_SUCCESS if relocation is successful 103 */ 104 efi_status_t efi_kaslr_relocate_kernel(unsigned long *image_addr, 105 unsigned long *reserve_addr, 106 unsigned long *reserve_size, 107 unsigned long kernel_size, 108 unsigned long kernel_codesize, 109 unsigned long kernel_memsize, 110 u32 phys_seed) 111 { 112 efi_status_t status; > 113 u64 min_kimg_align = efi_get_kimg_min_align(); 114 115 if (IS_ENABLED(CONFIG_RANDOMIZE_BASE) && phys_seed != 0) { 116 /* 117 * If KASLR is enabled, and we have some randomness available, 118 * locate the kernel at a randomized offset in physical memory. 119 */ 120 status = efi_random_alloc(*reserve_size, min_kimg_align, 121 reserve_addr, phys_seed, 122 EFI_LOADER_CODE); 123 if (status != EFI_SUCCESS) 124 efi_warn("efi_random_alloc() failed: 0x%lx\n", status); 125 } else { 126 status = EFI_OUT_OF_RESOURCES; 127 } 128 129 if (status != EFI_SUCCESS) { 130 if (!check_image_region(*image_addr, kernel_memsize)) { 131 efi_err("FIRMWARE BUG: Image BSS overlaps adjacent EFI memory region\n"); 132 } else if (IS_ALIGNED(*image_addr, min_kimg_align) && 133 (u64)_end < EFI_ALLOC_LIMIT) { 134 /* 135 * Just execute from wherever we were loaded by the 136 * UEFI PE/COFF loader if the placement is suitable. 137 */ 138 *reserve_size = 0; 139 return EFI_SUCCESS; 140 } 141 142 status = efi_allocate_pages_aligned(*reserve_size, reserve_addr, 143 ULONG_MAX, min_kimg_align, 144 EFI_LOADER_CODE); 145 146 if (status != EFI_SUCCESS) { 147 efi_err("Failed to relocate kernel\n"); 148 *reserve_size = 0; 149 return status; 150 } 151 } 152 153 memcpy((void *)*reserve_addr, (void *)*image_addr, kernel_size); 154 *image_addr = *reserve_addr; > 155 efi_icache_sync(*image_addr, *image_addr + kernel_codesize); -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki