Re: [PATCH v2 4/9] arm64: hugetlb: Override huge_pte_clear() to support contiguous hugepages

From: kbuild test robot
Date: Thu Apr 06 2017 - 01:38:37 EST


Hi Punit,

[auto build test ERROR on arm64/for-next/core]
[also build test ERROR on v4.11-rc5 next-20170405]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Punit-Agrawal/Support-swap-entries-for-contiguous-pte-hugepages/20170406-090327
base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
config: arm64-allmodconfig (attached as .config)
compiler: aarch64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=arm64

All errors (new ones prefixed by >>):

arch/arm64/mm/hugetlbpage.c: In function 'huge_pte_clear':
>> arch/arm64/mm/hugetlbpage.c:200:44: error: incompatible type for argument 4 of 'find_num_contig'
ncontig = find_num_contig(mm, addr, ptep, &pgsize);
^
arch/arm64/mm/hugetlbpage.c:44:12: note: expected 'pte_t {aka struct <anonymous>}' but argument is of type 'size_t * {aka long unsigned int *}'
static int find_num_contig(struct mm_struct *mm, unsigned long addr,
^~~~~~~~~~~~~~~
>> arch/arm64/mm/hugetlbpage.c:200:12: error: too few arguments to function 'find_num_contig'
ncontig = find_num_contig(mm, addr, ptep, &pgsize);
^~~~~~~~~~~~~~~
arch/arm64/mm/hugetlbpage.c:44:12: note: declared here
static int find_num_contig(struct mm_struct *mm, unsigned long addr,
^~~~~~~~~~~~~~~
arch/arm64/mm/hugetlbpage.c: In function 'huge_ptep_get_and_clear':
arch/arm64/mm/hugetlbpage.c:216:10: error: too few arguments to function 'huge_pte_offset'
cpte = huge_pte_offset(mm, addr);
^~~~~~~~~~~~~~~
arch/arm64/mm/hugetlbpage.c:135:8: note: declared here
pte_t *huge_pte_offset(struct mm_struct *mm,
^~~~~~~~~~~~~~~
arch/arm64/mm/hugetlbpage.c: In function 'huge_ptep_set_access_flags':
arch/arm64/mm/hugetlbpage.c:254:10: error: too few arguments to function 'huge_pte_offset'
cpte = huge_pte_offset(vma->vm_mm, addr);
^~~~~~~~~~~~~~~
arch/arm64/mm/hugetlbpage.c:135:8: note: declared here
pte_t *huge_pte_offset(struct mm_struct *mm,
^~~~~~~~~~~~~~~
arch/arm64/mm/hugetlbpage.c: In function 'huge_ptep_set_wrprotect':
arch/arm64/mm/hugetlbpage.c:279:10: error: too few arguments to function 'huge_pte_offset'
cpte = huge_pte_offset(mm, addr);
^~~~~~~~~~~~~~~
arch/arm64/mm/hugetlbpage.c:135:8: note: declared here
pte_t *huge_pte_offset(struct mm_struct *mm,
^~~~~~~~~~~~~~~
arch/arm64/mm/hugetlbpage.c: In function 'huge_ptep_clear_flush':
arch/arm64/mm/hugetlbpage.c:296:10: error: too few arguments to function 'huge_pte_offset'
cpte = huge_pte_offset(vma->vm_mm, addr);
^~~~~~~~~~~~~~~
arch/arm64/mm/hugetlbpage.c:135:8: note: declared here
pte_t *huge_pte_offset(struct mm_struct *mm,
^~~~~~~~~~~~~~~

vim +/find_num_contig +200 arch/arm64/mm/hugetlbpage.c

194
195 if (sz == PUD_SIZE || sz == PMD_SIZE) {
196 pte_clear(mm, addr, ptep);
197 return;
198 }
199
> 200 ncontig = find_num_contig(mm, addr, ptep, &pgsize);
201 for (i = 0; i < ncontig; i++, addr += pgsize, ptep++)
202 pte_clear(mm, addr, ptep);
203 }

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

Attachment: .config.gz
Description: application/gzip