Re: [PATCH] mm/debug_vm_pgtable: Fix corrupted PG_arch_1 by set_pmd_at()

From: kernel test robot
Date: Fri Jul 02 2021 - 14:10:59 EST


Hi Gavin,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[cannot apply to hnaz-linux-mm/master linux/master v5.13 next-20210701]
[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/Gavin-Shan/mm-debug_vm_pgtable-Fix-corrupted-PG_arch_1-by-set_pmd_at/20210702-183310
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 3dbdb38e286903ec220aaf1fb29a8d94297da246
config: x86_64-randconfig-a004-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 x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/414db1c0feb54b545b3df56bc19ffff27580deb5
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Gavin-Shan/mm-debug_vm_pgtable-Fix-corrupted-PG_arch_1-by-set_pmd_at/20210702-183310
git checkout 414db1c0feb54b545b3df56bc19ffff27580deb5
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64

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

All errors (new ones prefixed by >>):

>> mm/debug_vm_pgtable.c:347:22: error: invalid operands to binary expression ('struct page *' and 'struct page *')
struct page *page = pfn_to_page(page);
^~~~~~~~~~~~~~~~~
include/asm-generic/memory_model.h:53:21: note: expanded from macro 'pfn_to_page'
#define pfn_to_page __pfn_to_page
^
include/asm-generic/memory_model.h:25:37: note: expanded from macro '__pfn_to_page'
#define __pfn_to_page(pfn) (vmemmap + (pfn))
~~~~~~~ ^ ~~~~~
1 error generated.


vim +347 mm/debug_vm_pgtable.c

341
342 static void __init pud_advanced_tests(struct mm_struct *mm,
343 struct vm_area_struct *vma, pud_t *pudp,
344 unsigned long pfn, unsigned long vaddr,
345 pgprot_t prot)
346 {
> 347 struct page *page = pfn_to_page(page);
348 pud_t pud;
349
350 if (!has_transparent_hugepage())
351 return;
352
353 pr_debug("Validating PUD advanced\n");
354 /* Align the address wrt HPAGE_PUD_SIZE */
355 vaddr &= HPAGE_PUD_MASK;
356
357 pud = pfn_pud(pfn, prot);
358 set_pud_at(mm, vaddr, pudp, pud);
359 flush_dcache_page(page);
360 pudp_set_wrprotect(mm, vaddr, pudp);
361 pud = READ_ONCE(*pudp);
362 WARN_ON(pud_write(pud));
363

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

Attachment: .config.gz
Description: application/gzip