[PATCH 3/3] riscv: convert pgtable_l4_enabled to static key
kernel test robot
lkp at intel.com
Tue Jan 25 18:42:53 PST 2022
Hi Jisheng,
I love your patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v5.17-rc1 next-20220125]
[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]
url: https://github.com/0day-ci/linux/commits/Jisheng-Zhang/unified-way-to-use-static-key-and-optimize-pgtable_l4_enabled/20220126-010230
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git a08b41ab9e2e468647f78eb17c28e29b93006394
config: riscv-randconfig-p001-20220124 (https://download.01.org/0day-ci/archive/20220126/202201261008.l5nSsAdd-lkp@intel.com/config)
compiler: riscv32-linux-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://github.com/0day-ci/linux/commit/6822380e5bcac6d3edfa5d0723d829db8ec28405
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Jisheng-Zhang/unified-way-to-use-static-key-and-optimize-pgtable_l4_enabled/20220126-010230
git checkout 6822380e5bcac6d3edfa5d0723d829db8ec28405
# 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=riscv SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>
All errors (new ones prefixed by >>):
arch/riscv/mm/init.c: In function 'create_fdt_early_page_table':
>> arch/riscv/mm/init.c:691:13: error: implicit declaration of function 'system_supports_sv48' [-Werror=implicit-function-declaration]
691 | if (system_supports_sv48()) {
| ^~~~~~~~~~~~~~~~~~~~
arch/riscv/mm/init.c: At top level:
arch/riscv/mm/init.c:721:13: warning: no previous prototype for 'pt_ops_set_early' [-Wmissing-prototypes]
721 | void __init pt_ops_set_early(void)
| ^~~~~~~~~~~~~~~~
arch/riscv/mm/init.c:741:13: warning: no previous prototype for 'pt_ops_set_fixmap' [-Wmissing-prototypes]
741 | void __init pt_ops_set_fixmap(void)
| ^~~~~~~~~~~~~~~~~
arch/riscv/mm/init.c:757:13: warning: no previous prototype for 'pt_ops_set_late' [-Wmissing-prototypes]
757 | void __init pt_ops_set_late(void)
| ^~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/system_supports_sv48 +691 arch/riscv/mm/init.c
675
676 /*
677 * Setup a 4MB mapping that encompasses the device tree: for 64-bit kernel,
678 * this means 2 PMD entries whereas for 32-bit kernel, this is only 1 PGDIR
679 * entry.
680 */
681 static void __init create_fdt_early_page_table(pgd_t *pgdir, uintptr_t dtb_pa)
682 {
683 #ifndef CONFIG_BUILTIN_DTB
684 uintptr_t pa = dtb_pa & ~(PMD_SIZE - 1);
685
686 create_pgd_mapping(early_pg_dir, DTB_EARLY_BASE_VA,
687 IS_ENABLED(CONFIG_64BIT) ? early_dtb_pgd_next : pa,
688 PGDIR_SIZE,
689 IS_ENABLED(CONFIG_64BIT) ? PAGE_TABLE : PAGE_KERNEL);
690
> 691 if (system_supports_sv48()) {
692 create_pud_mapping(early_dtb_pud, DTB_EARLY_BASE_VA,
693 (uintptr_t)early_dtb_pmd, PUD_SIZE, PAGE_TABLE);
694 }
695
696 if (IS_ENABLED(CONFIG_64BIT)) {
697 create_pmd_mapping(early_dtb_pmd, DTB_EARLY_BASE_VA,
698 pa, PMD_SIZE, PAGE_KERNEL);
699 create_pmd_mapping(early_dtb_pmd, DTB_EARLY_BASE_VA + PMD_SIZE,
700 pa + PMD_SIZE, PMD_SIZE, PAGE_KERNEL);
701 }
702
703 dtb_early_va = (void *)DTB_EARLY_BASE_VA + (dtb_pa & (PMD_SIZE - 1));
704 #else
705 /*
706 * For 64-bit kernel, __va can't be used since it would return a linear
707 * mapping address whereas dtb_early_va will be used before
708 * setup_vm_final installs the linear mapping. For 32-bit kernel, as the
709 * kernel is mapped in the linear mapping, that makes no difference.
710 */
711 dtb_early_va = kernel_mapping_pa_to_va(XIP_FIXUP(dtb_pa));
712 #endif
713
714 dtb_early_pa = dtb_pa;
715 }
716
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
More information about the linux-riscv
mailing list