Re: [PATCH 2/2] riscv: Fix set_memory_XX() and set_direct_map_XX() by splitting huge linear mappings

From: kernel test robot
Date: Fri Oct 06 2023 - 19:46:10 EST


Hi Alexandre,

kernel test robot noticed the following build warnings:

[auto build test WARNING on linus/master]
[also build test WARNING on v6.6-rc4 next-20231006]
[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-Don-t-use-PGD-entries-for-the-linear-mapping/20231006-173223
base: linus/master
patch link: https://lore.kernel.org/r/20231006092930.15850-3-alexghiti%40rivosinc.com
patch subject: [PATCH 2/2] riscv: Fix set_memory_XX() and set_direct_map_XX() by splitting huge linear mappings
config: riscv-rv32_defconfig (https://download.01.org/0day-ci/archive/20231007/202310070700.4hSXftFh-lkp@xxxxxxxxx/config)
compiler: riscv32-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231007/202310070700.4hSXftFh-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/202310070700.4hSXftFh-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

arch/riscv/mm/pageattr.c: In function '__split_linear_mapping_pmd':
arch/riscv/mm/pageattr.c:112:45: error: implicit declaration of function '_pmd_pfn'; did you mean 'pmd_pfn'? [-Werror=implicit-function-declaration]
112 | unsigned long pfn = _pmd_pfn(*pmdp);
| ^~~~~~~~
| pmd_pfn
arch/riscv/mm/pageattr.c:127:39: error: implicit declaration of function 'pfn_pmd'; did you mean 'pfn_pgd'? [-Werror=implicit-function-declaration]
127 | set_pmd(pmdp, pfn_pmd(page_to_pfn(pte_page), PAGE_TABLE));
| ^~~~~~~
| pfn_pgd
arch/riscv/mm/pageattr.c:127:39: error: incompatible type for argument 2 of 'set_pmd'
127 | set_pmd(pmdp, pfn_pmd(page_to_pfn(pte_page), PAGE_TABLE));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int
In file included from include/linux/pgtable.h:6,
from include/linux/mm.h:29,
from include/linux/pagewalk.h:5,
from arch/riscv/mm/pageattr.c:6:
arch/riscv/include/asm/pgtable.h:249:47: note: expected 'pmd_t' but argument is of type 'int'
249 | static inline void set_pmd(pmd_t *pmdp, pmd_t pmd)
| ~~~~~~^~~
arch/riscv/mm/pageattr.c: In function '__split_linear_mapping_pud':
arch/riscv/mm/pageattr.c:152:45: error: implicit declaration of function '_pud_pfn'; did you mean 'pud_pfn'? [-Werror=implicit-function-declaration]
152 | unsigned long pfn = _pud_pfn(*pudp);
| ^~~~~~~~
| pud_pfn
arch/riscv/mm/pageattr.c:164:41: error: incompatible type for argument 2 of 'set_pmd'
164 | pfn_pmd(pfn + ((i * PMD_SIZE) >> PAGE_SHIFT), prot));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int
arch/riscv/include/asm/pgtable.h:249:47: note: expected 'pmd_t' but argument is of type 'int'
249 | static inline void set_pmd(pmd_t *pmdp, pmd_t pmd)
| ~~~~~~^~~
In file included from arch/riscv/include/asm/pgtable-32.h:9,
from arch/riscv/include/asm/pgtable.h:141:
arch/riscv/mm/pageattr.c:168:39: error: implicit declaration of function 'pfn_pud'; did you mean 'pfn_pgd'? [-Werror=implicit-function-declaration]
168 | set_pud(pudp, pfn_pud(page_to_pfn(pmd_page), PAGE_TABLE));
| ^~~~~~~
include/asm-generic/pgtable-nopmd.h:44:86: note: in definition of macro 'set_pud'
44 | #define set_pud(pudptr, pudval) set_pmd((pmd_t *)(pudptr), (pmd_t) { pudval })
| ^~~~~~
>> include/asm-generic/pgtable-nopmd.h:44:76: warning: missing braces around initializer [-Wmissing-braces]
44 | #define set_pud(pudptr, pudval) set_pmd((pmd_t *)(pudptr), (pmd_t) { pudval })
| ^
arch/riscv/mm/pageattr.c:168:25: note: in expansion of macro 'set_pud'
168 | set_pud(pudp, pfn_pud(page_to_pfn(pmd_page), PAGE_TABLE));
| ^~~~~~~
arch/riscv/mm/pageattr.c: In function '__split_linear_mapping_p4d':
arch/riscv/mm/pageattr.c:201:45: error: implicit declaration of function '_p4d_pfn'; did you mean '_pgd_pfn'? [-Werror=implicit-function-declaration]
201 | unsigned long pfn = _p4d_pfn(*p4dp);
| ^~~~~~~~
| _pgd_pfn
>> include/asm-generic/pgtable-nopmd.h:44:76: warning: missing braces around initializer [-Wmissing-braces]
44 | #define set_pud(pudptr, pudval) set_pmd((pmd_t *)(pudptr), (pmd_t) { pudval })
| ^
arch/riscv/mm/pageattr.c:216:33: note: in expansion of macro 'set_pud'
216 | set_pud(pudp_new,
| ^~~~~~~
arch/riscv/mm/pageattr.c:226:39: error: implicit declaration of function 'pfn_p4d'; did you mean 'pfn_pgd'? [-Werror=implicit-function-declaration]
226 | set_p4d(p4dp, pfn_p4d(page_to_pfn(pud_page), PAGE_TABLE));
| ^~~~~~~
include/asm-generic/pgtable-nopmd.h:44:86: note: in definition of macro 'set_pud'
44 | #define set_pud(pudptr, pudval) set_pmd((pmd_t *)(pudptr), (pmd_t) { pudval })
| ^~~~~~
arch/riscv/mm/pageattr.c:226:25: note: in expansion of macro 'set_p4d'
226 | set_p4d(p4dp, pfn_p4d(page_to_pfn(pud_page), PAGE_TABLE));
| ^~~~~~~
>> include/asm-generic/pgtable-nopud.h:40:60: warning: missing braces around initializer [-Wmissing-braces]
40 | #define set_p4d(p4dptr, p4dval) set_pud((pud_t *)(p4dptr), (pud_t) { p4dval })
| ^
include/asm-generic/pgtable-nopmd.h:44:86: note: in definition of macro 'set_pud'
44 | #define set_pud(pudptr, pudval) set_pmd((pmd_t *)(pudptr), (pmd_t) { pudval })
| ^~~~~~
arch/riscv/mm/pageattr.c:226:25: note: in expansion of macro 'set_p4d'
226 | set_p4d(p4dp, pfn_p4d(page_to_pfn(pud_page), PAGE_TABLE));
| ^~~~~~~
>> include/asm-generic/pgtable-nopmd.h:44:76: warning: missing braces around initializer [-Wmissing-braces]
44 | #define set_pud(pudptr, pudval) set_pmd((pmd_t *)(pudptr), (pmd_t) { pudval })
| ^
include/asm-generic/pgtable-nopud.h:40:33: note: in expansion of macro 'set_pud'
40 | #define set_p4d(p4dptr, p4dval) set_pud((pud_t *)(p4dptr), (pud_t) { p4dval })
| ^~~~~~~
arch/riscv/mm/pageattr.c:226:25: note: in expansion of macro 'set_p4d'
226 | set_p4d(p4dp, pfn_p4d(page_to_pfn(pud_page), PAGE_TABLE));
| ^~~~~~~
cc1: some warnings being treated as errors


vim +44 include/asm-generic/pgtable-nopmd.h

^1da177e4c3f41 Linus Torvalds 2005-04-16 39
^1da177e4c3f41 Linus Torvalds 2005-04-16 40 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 41 * (pmds are folded into puds so this doesn't get actually called,
^1da177e4c3f41 Linus Torvalds 2005-04-16 42 * but the define is needed for a generic inline function.)
^1da177e4c3f41 Linus Torvalds 2005-04-16 43 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 @44 #define set_pud(pudptr, pudval) set_pmd((pmd_t *)(pudptr), (pmd_t) { pudval })
^1da177e4c3f41 Linus Torvalds 2005-04-16 45

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki