Re: [PATCH v13 12/22] mm: pagewalk: Allow walking without vma

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Steven,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.4-rc4 next-20191025]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Steven-Price/Generic-page-walk-and-ptdump/20191027-140322
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 5a1e843c66fa6438f389045981c37e4073917641
config: arc-defconfig (attached as .config)
compiler: arc-elf-gcc (GCC) 7.4.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=arc 

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

All error/warnings (new ones prefixed by >>):

   In file included from arch/arc/include/asm/thread_info.h:16:0,
                    from include/linux/thread_info.h:38,
                    from include/asm-generic/preempt.h:5,
                    from ./arch/arc/include/generated/asm/preempt.h:1,
                    from include/linux/preempt.h:78,
                    from include/linux/spinlock.h:51,
                    from include/linux/mmzone.h:8,
                    from include/linux/gfp.h:6,
                    from include/linux/mm.h:10,
                    from include/linux/pagewalk.h:5,
                    from mm/pagewalk.c:2:
   mm/pagewalk.c: In function 'walk_pmd_range':
>> include/asm-generic/pgtable-nopmd.h:49:35: error: 'pmd' is a pointer; did you mean to use '->'?
    #define pmd_val(x)    (pud_val((x).pud))
                                      ^
   arch/arc/include/asm/page.h:65:21: note: in definition of macro 'pgd_val'
    #define pgd_val(x) (x)
                        ^
   include/asm-generic/pgtable-nopmd.h:49:24: note: in expansion of macro 'pud_val'
    #define pmd_val(x)    (pud_val((x).pud))
                           ^~~~~~~
>> arch/arc/include/asm/pgtable.h:277:24: note: in expansion of macro 'pmd_val'
    #define pmd_leaf(x)   (pmd_val(pmd) & _PAGE_HW_SZ)
                           ^~~~~~~
>> mm/pagewalk.c:68:14: note: in expansion of macro 'pmd_leaf'
      } else if (pmd_leaf(*pmd)) {
                 ^~~~~~~~

vim +/pmd_leaf +68 mm/pagewalk.c

    28	
    29	static int walk_pmd_range(pud_t *pud, unsigned long addr, unsigned long end,
    30				  struct mm_walk *walk)
    31	{
    32		pmd_t *pmd;
    33		unsigned long next;
    34		const struct mm_walk_ops *ops = walk->ops;
    35		int err = 0;
    36	
    37		pmd = pmd_offset(pud, addr);
    38		do {
    39	again:
    40			next = pmd_addr_end(addr, end);
    41			if (pmd_none(*pmd)) {
    42				if (ops->pte_hole)
    43					err = ops->pte_hole(addr, next, walk);
    44				if (err)
    45					break;
    46				continue;
    47			}
    48			/*
    49			 * This implies that each ->pmd_entry() handler
    50			 * needs to know about pmd_trans_huge() pmds
    51			 */
    52			if (ops->pmd_entry)
    53				err = ops->pmd_entry(pmd, addr, next, walk);
    54			if (err)
    55				break;
    56	
    57			/*
    58			 * Check this here so we only break down trans_huge
    59			 * pages when we _need_ to
    60			 */
    61			if (!ops->pte_entry)
    62				continue;
    63	
    64			if (walk->vma) {
    65				split_huge_pmd(walk->vma, pmd, addr);
    66				if (pmd_trans_unstable(pmd))
    67					goto again;
  > 68			} else if (pmd_leaf(*pmd)) {
    69				continue;
    70			}
    71	
    72			err = walk_pte_range(pmd, addr, next, walk);
    73			if (err)
    74				break;
    75		} while (pmd++, addr = next, addr != end);
    76	
    77		return err;
    78	}
    79	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux