[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202001201117.36MambYV%lkp@intel.com>
Date: Mon, 20 Jan 2020 11:15:45 +0800
From: kbuild test robot <lkp@...el.com>
To: Christoph Hellwig <hch@....de>
Cc: kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
Paul Walmsley <paul.walmsley@...ive.com>,
Anup Patel <anup@...infault.org>
Subject: include/asm-generic/hugetlb.h:7:9: error: incompatible types when
returning type 'int' but 'pte_t {aka struct <anonymous>}' was expected
Hi Christoph,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 7008ee121089b8193aea918b98850fe87d996508
commit: 6bd33e1ece528f67646db33bf97406b747dafda0 riscv: add nommu support
date: 9 weeks ago
config: riscv-randconfig-a001-20200120 (attached as .config)
compiler: riscv64-linux-gcc (GCC) 7.5.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 6bd33e1ece528f67646db33bf97406b747dafda0
# save the attached .config to linux build tree
GCC_VERSION=7.5.0 make.cross ARCH=riscv
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@...el.com>
All errors (new ones prefixed by >>):
drivers/gpu/drm/drm_gem.c: In function 'drm_gem_mmap_obj':
>> drivers/gpu/drm/drm_gem.c:1116:22: error: implicit declaration of function 'pgprot_writecombine' [-Werror=implicit-function-declaration]
vma->vm_page_prot = pgprot_writecombine(vm_get_page_prot(vma->vm_flags));
^~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/drm_gem.c:1116:20: error: incompatible types when assigning to type 'pgprot_t {aka struct <anonymous>}' from type 'int'
vma->vm_page_prot = pgprot_writecombine(vm_get_page_prot(vma->vm_flags));
^
cc1: some warnings being treated as errors
--
drivers/gpu/drm/vgem/vgem_drv.c: In function 'vgem_prime_vmap':
>> drivers/gpu/drm/vgem/vgem_drv.c:392:33: error: implicit declaration of function 'pgprot_writecombine' [-Werror=implicit-function-declaration]
return vmap(pages, n_pages, 0, pgprot_writecombine(PAGE_KERNEL));
^~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/vgem/vgem_drv.c:392:33: error: incompatible type for argument 4 of 'vmap'
In file included from include/asm-generic/io.h:887:0,
from arch/riscv/include/asm/io.h:148,
from include/linux/scatterlist.h:9,
from include/linux/dma-buf.h:18,
from drivers/gpu/drm/vgem/vgem_drv.c:33:
include/linux/vmalloc.h:119:14: note: expected 'pgprot_t {aka struct <anonymous>}' but argument is of type 'int'
extern void *vmap(struct page **pages, unsigned int count,
^~~~
drivers/gpu/drm/vgem/vgem_drv.c: In function 'vgem_prime_mmap':
>> drivers/gpu/drm/vgem/vgem_drv.c:421:20: error: incompatible types when assigning to type 'pgprot_t {aka struct <anonymous>}' from type 'int'
vma->vm_page_prot = pgprot_writecombine(vm_get_page_prot(vma->vm_flags));
^
drivers/gpu/drm/vgem/vgem_drv.c: In function 'vgem_prime_vmap':
drivers/gpu/drm/vgem/vgem_drv.c:393:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
cc1: some warnings being treated as errors
--
In file included from arch/riscv/include/asm/hugetlb.h:5:0,
from include/linux/hugetlb.h:444,
from arch/riscv//mm/hugetlbpage.c:2:
include/asm-generic/hugetlb.h: In function 'mk_huge_pte':
>> include/asm-generic/hugetlb.h:7:9: error: implicit declaration of function 'mk_pte'; did you mean '__pte'? [-Werror=implicit-function-declaration]
return mk_pte(page, pgprot);
^~~~~~
__pte
>> include/asm-generic/hugetlb.h:7:9: error: incompatible types when returning type 'int' but 'pte_t {aka struct <anonymous>}' was expected
return mk_pte(page, pgprot);
^~~~~~~~~~~~~~~~~~~~
include/asm-generic/hugetlb.h: In function 'huge_pte_write':
>> include/asm-generic/hugetlb.h:12:9: error: implicit declaration of function 'pte_write'; did you mean 'pgd_write'? [-Werror=implicit-function-declaration]
return pte_write(pte);
^~~~~~~~~
pgd_write
include/asm-generic/hugetlb.h: In function 'huge_pte_dirty':
>> include/asm-generic/hugetlb.h:17:9: error: implicit declaration of function 'pte_dirty'; did you mean 'info_dirty'? [-Werror=implicit-function-declaration]
return pte_dirty(pte);
^~~~~~~~~
info_dirty
include/asm-generic/hugetlb.h: In function 'huge_pte_mkwrite':
>> include/asm-generic/hugetlb.h:22:9: error: implicit declaration of function 'pte_mkwrite'; did you mean 'pgd_write'? [-Werror=implicit-function-declaration]
return pte_mkwrite(pte);
^~~~~~~~~~~
pgd_write
include/asm-generic/hugetlb.h:22:9: error: incompatible types when returning type 'int' but 'pte_t {aka struct <anonymous>}' was expected
return pte_mkwrite(pte);
^~~~~~~~~~~~~~~~
include/asm-generic/hugetlb.h: In function 'huge_pte_mkdirty':
>> include/asm-generic/hugetlb.h:27:9: error: implicit declaration of function 'pte_mkdirty'; did you mean 'huge_pte_mkdirty'? [-Werror=implicit-function-declaration]
return pte_mkdirty(pte);
^~~~~~~~~~~
huge_pte_mkdirty
include/asm-generic/hugetlb.h:27:9: error: incompatible types when returning type 'int' but 'pte_t {aka struct <anonymous>}' was expected
return pte_mkdirty(pte);
^~~~~~~~~~~~~~~~
include/asm-generic/hugetlb.h: In function 'huge_pte_modify':
>> include/asm-generic/hugetlb.h:32:9: error: implicit declaration of function 'pte_modify'; did you mean 'lease_modify'? [-Werror=implicit-function-declaration]
return pte_modify(pte, newprot);
^~~~~~~~~~
lease_modify
include/asm-generic/hugetlb.h:32:9: error: incompatible types when returning type 'int' but 'pte_t {aka struct <anonymous>}' was expected
return pte_modify(pte, newprot);
^~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/hugetlb.h: In function 'huge_pte_clear':
>> include/asm-generic/hugetlb.h:39:2: error: implicit declaration of function 'pte_clear'; did you mean 'pud_clear'? [-Werror=implicit-function-declaration]
pte_clear(mm, addr, ptep);
^~~~~~~~~
pud_clear
include/asm-generic/hugetlb.h: In function 'set_huge_pte_at':
>> include/asm-generic/hugetlb.h:56:2: error: implicit declaration of function 'set_pte_at'; did you mean 'set_huge_pte_at'? [-Werror=implicit-function-declaration]
set_pte_at(mm, addr, ptep, pte);
^~~~~~~~~~
set_huge_pte_at
include/asm-generic/hugetlb.h: In function 'huge_ptep_get_and_clear':
>> include/asm-generic/hugetlb.h:64:9: error: implicit declaration of function 'ptep_get_and_clear'; did you mean 'huge_ptep_get_and_clear'? [-Werror=implicit-function-declaration]
return ptep_get_and_clear(mm, addr, ptep);
^~~~~~~~~~~~~~~~~~
huge_ptep_get_and_clear
include/asm-generic/hugetlb.h:64:9: error: incompatible types when returning type 'int' but 'pte_t {aka struct <anonymous>}' was expected
return ptep_get_and_clear(mm, addr, ptep);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/hugetlb.h: In function 'huge_ptep_clear_flush':
>> include/asm-generic/hugetlb.h:72:2: error: implicit declaration of function 'ptep_clear_flush'; did you mean 'huge_ptep_clear_flush'? [-Werror=implicit-function-declaration]
ptep_clear_flush(vma, addr, ptep);
^~~~~~~~~~~~~~~~
huge_ptep_clear_flush
include/asm-generic/hugetlb.h: In function 'huge_pte_none':
>> include/asm-generic/hugetlb.h:79:9: error: implicit declaration of function 'pte_none'; did you mean 'pud_none'? [-Werror=implicit-function-declaration]
return pte_none(pte);
^~~~~~~~
pud_none
include/asm-generic/hugetlb.h: In function 'huge_pte_wrprotect':
>> include/asm-generic/hugetlb.h:86:9: error: implicit declaration of function 'pte_wrprotect'; did you mean 'huge_pte_wrprotect'? [-Werror=implicit-function-declaration]
return pte_wrprotect(pte);
^~~~~~~~~~~~~
huge_pte_wrprotect
include/asm-generic/hugetlb.h:86:9: error: incompatible types when returning type 'int' but 'pte_t {aka struct <anonymous>}' was expected
return pte_wrprotect(pte);
^~~~~~~~~~~~~~~~~~
include/asm-generic/hugetlb.h: In function 'huge_ptep_set_wrprotect':
>> include/asm-generic/hugetlb.h:109:2: error: implicit declaration of function 'ptep_set_wrprotect'; did you mean 'huge_ptep_set_wrprotect'? [-Werror=implicit-function-declaration]
ptep_set_wrprotect(mm, addr, ptep);
^~~~~~~~~~~~~~~~~~
huge_ptep_set_wrprotect
include/asm-generic/hugetlb.h: In function 'huge_ptep_set_access_flags':
>> include/asm-generic/hugetlb.h:118:9: error: implicit declaration of function 'ptep_set_access_flags'; did you mean 'huge_ptep_set_access_flags'? [-Werror=implicit-function-declaration]
return ptep_set_access_flags(vma, addr, ptep, pte, dirty);
^~~~~~~~~~~~~~~~~~~~~
huge_ptep_set_access_flags
arch/riscv//mm/hugetlbpage.c: In function 'pmd_huge':
>> arch/riscv//mm/hugetlbpage.c:13:9: error: implicit declaration of function 'pmd_present'; did you mean 'pud_present'? [-Werror=implicit-function-declaration]
return pmd_present(pmd) &&
^~~~~~~~~~~
pud_present
cc1: some warnings being treated as errors
--
In file included from arch/riscv/include/asm/hugetlb.h:5:0,
from include/linux/hugetlb.h:444,
from include/linux/migrate.h:8,
from fs//btrfs/disk-io.c:14:
include/asm-generic/hugetlb.h: In function 'mk_huge_pte':
>> include/asm-generic/hugetlb.h:7:9: error: implicit declaration of function 'mk_pte'; did you mean '__pte'? [-Werror=implicit-function-declaration]
return mk_pte(page, pgprot);
^~~~~~
__pte
>> include/asm-generic/hugetlb.h:7:9: error: incompatible types when returning type 'int' but 'pte_t {aka struct <anonymous>}' was expected
return mk_pte(page, pgprot);
^~~~~~~~~~~~~~~~~~~~
include/asm-generic/hugetlb.h: In function 'huge_pte_write':
>> include/asm-generic/hugetlb.h:12:9: error: implicit declaration of function 'pte_write'; did you mean 'pgd_write'? [-Werror=implicit-function-declaration]
return pte_write(pte);
^~~~~~~~~
pgd_write
include/asm-generic/hugetlb.h: In function 'huge_pte_dirty':
>> include/asm-generic/hugetlb.h:17:9: error: implicit declaration of function 'pte_dirty'; did you mean 'info_dirty'? [-Werror=implicit-function-declaration]
return pte_dirty(pte);
^~~~~~~~~
info_dirty
include/asm-generic/hugetlb.h: In function 'huge_pte_mkwrite':
>> include/asm-generic/hugetlb.h:22:9: error: implicit declaration of function 'pte_mkwrite'; did you mean 'pgd_write'? [-Werror=implicit-function-declaration]
return pte_mkwrite(pte);
^~~~~~~~~~~
pgd_write
include/asm-generic/hugetlb.h:22:9: error: incompatible types when returning type 'int' but 'pte_t {aka struct <anonymous>}' was expected
return pte_mkwrite(pte);
^~~~~~~~~~~~~~~~
include/asm-generic/hugetlb.h: In function 'huge_pte_mkdirty':
>> include/asm-generic/hugetlb.h:27:9: error: implicit declaration of function 'pte_mkdirty'; did you mean 'huge_pte_mkdirty'? [-Werror=implicit-function-declaration]
return pte_mkdirty(pte);
^~~~~~~~~~~
huge_pte_mkdirty
include/asm-generic/hugetlb.h:27:9: error: incompatible types when returning type 'int' but 'pte_t {aka struct <anonymous>}' was expected
return pte_mkdirty(pte);
^~~~~~~~~~~~~~~~
include/asm-generic/hugetlb.h: In function 'huge_pte_modify':
>> include/asm-generic/hugetlb.h:32:9: error: implicit declaration of function 'pte_modify'; did you mean 'lease_modify'? [-Werror=implicit-function-declaration]
return pte_modify(pte, newprot);
^~~~~~~~~~
lease_modify
include/asm-generic/hugetlb.h:32:9: error: incompatible types when returning type 'int' but 'pte_t {aka struct <anonymous>}' was expected
return pte_modify(pte, newprot);
^~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/hugetlb.h: In function 'huge_pte_clear':
>> include/asm-generic/hugetlb.h:39:2: error: implicit declaration of function 'pte_clear'; did you mean 'pud_clear'? [-Werror=implicit-function-declaration]
pte_clear(mm, addr, ptep);
^~~~~~~~~
pud_clear
include/asm-generic/hugetlb.h: In function 'set_huge_pte_at':
>> include/asm-generic/hugetlb.h:56:2: error: implicit declaration of function 'set_pte_at'; did you mean 'set_huge_pte_at'? [-Werror=implicit-function-declaration]
set_pte_at(mm, addr, ptep, pte);
^~~~~~~~~~
set_huge_pte_at
include/asm-generic/hugetlb.h: In function 'huge_ptep_get_and_clear':
>> include/asm-generic/hugetlb.h:64:9: error: implicit declaration of function 'ptep_get_and_clear'; did you mean 'huge_ptep_get_and_clear'? [-Werror=implicit-function-declaration]
return ptep_get_and_clear(mm, addr, ptep);
^~~~~~~~~~~~~~~~~~
huge_ptep_get_and_clear
include/asm-generic/hugetlb.h:64:9: error: incompatible types when returning type 'int' but 'pte_t {aka struct <anonymous>}' was expected
return ptep_get_and_clear(mm, addr, ptep);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/hugetlb.h: In function 'huge_ptep_clear_flush':
>> include/asm-generic/hugetlb.h:72:2: error: implicit declaration of function 'ptep_clear_flush'; did you mean 'huge_ptep_clear_flush'? [-Werror=implicit-function-declaration]
ptep_clear_flush(vma, addr, ptep);
^~~~~~~~~~~~~~~~
huge_ptep_clear_flush
include/asm-generic/hugetlb.h: In function 'huge_pte_none':
>> include/asm-generic/hugetlb.h:79:9: error: implicit declaration of function 'pte_none'; did you mean 'pud_none'? [-Werror=implicit-function-declaration]
return pte_none(pte);
^~~~~~~~
pud_none
include/asm-generic/hugetlb.h: In function 'huge_pte_wrprotect':
>> include/asm-generic/hugetlb.h:86:9: error: implicit declaration of function 'pte_wrprotect'; did you mean 'huge_pte_wrprotect'? [-Werror=implicit-function-declaration]
return pte_wrprotect(pte);
^~~~~~~~~~~~~
huge_pte_wrprotect
include/asm-generic/hugetlb.h:86:9: error: incompatible types when returning type 'int' but 'pte_t {aka struct <anonymous>}' was expected
return pte_wrprotect(pte);
^~~~~~~~~~~~~~~~~~
include/asm-generic/hugetlb.h: In function 'huge_ptep_set_wrprotect':
>> include/asm-generic/hugetlb.h:109:2: error: implicit declaration of function 'ptep_set_wrprotect'; did you mean 'huge_ptep_set_wrprotect'? [-Werror=implicit-function-declaration]
ptep_set_wrprotect(mm, addr, ptep);
^~~~~~~~~~~~~~~~~~
huge_ptep_set_wrprotect
include/asm-generic/hugetlb.h: In function 'huge_ptep_set_access_flags':
>> include/asm-generic/hugetlb.h:118:9: error: implicit declaration of function 'ptep_set_access_flags'; did you mean 'huge_ptep_set_access_flags'? [-Werror=implicit-function-declaration]
return ptep_set_access_flags(vma, addr, ptep, pte, dirty);
^~~~~~~~~~~~~~~~~~~~~
huge_ptep_set_access_flags
cc1: some warnings being treated as errors
--
fs//pstore/ram_core.c: In function 'persistent_ram_vmap':
>> fs//pstore/ram_core.c:417:10: error: implicit declaration of function 'pgprot_writecombine' [-Werror=implicit-function-declaration]
prot = pgprot_writecombine(PAGE_KERNEL);
^~~~~~~~~~~~~~~~~~~
>> fs//pstore/ram_core.c:417:8: error: incompatible types when assigning to type 'pgprot_t {aka struct <anonymous>}' from type 'int'
prot = pgprot_writecombine(PAGE_KERNEL);
^
cc1: some warnings being treated as errors
vim +7 include/asm-generic/hugetlb.h
106c992a5ebef2 Gerald Schaefer 2013-04-29 4
106c992a5ebef2 Gerald Schaefer 2013-04-29 5 static inline pte_t mk_huge_pte(struct page *page, pgprot_t pgprot)
106c992a5ebef2 Gerald Schaefer 2013-04-29 6 {
106c992a5ebef2 Gerald Schaefer 2013-04-29 @7 return mk_pte(page, pgprot);
106c992a5ebef2 Gerald Schaefer 2013-04-29 8 }
106c992a5ebef2 Gerald Schaefer 2013-04-29 9
26794942461f43 David Miller 2013-10-02 10 static inline unsigned long huge_pte_write(pte_t pte)
106c992a5ebef2 Gerald Schaefer 2013-04-29 11 {
106c992a5ebef2 Gerald Schaefer 2013-04-29 @12 return pte_write(pte);
106c992a5ebef2 Gerald Schaefer 2013-04-29 13 }
106c992a5ebef2 Gerald Schaefer 2013-04-29 14
26794942461f43 David Miller 2013-10-02 15 static inline unsigned long huge_pte_dirty(pte_t pte)
106c992a5ebef2 Gerald Schaefer 2013-04-29 16 {
106c992a5ebef2 Gerald Schaefer 2013-04-29 @17 return pte_dirty(pte);
106c992a5ebef2 Gerald Schaefer 2013-04-29 18 }
106c992a5ebef2 Gerald Schaefer 2013-04-29 19
106c992a5ebef2 Gerald Schaefer 2013-04-29 20 static inline pte_t huge_pte_mkwrite(pte_t pte)
106c992a5ebef2 Gerald Schaefer 2013-04-29 21 {
106c992a5ebef2 Gerald Schaefer 2013-04-29 @22 return pte_mkwrite(pte);
106c992a5ebef2 Gerald Schaefer 2013-04-29 23 }
106c992a5ebef2 Gerald Schaefer 2013-04-29 24
106c992a5ebef2 Gerald Schaefer 2013-04-29 25 static inline pte_t huge_pte_mkdirty(pte_t pte)
106c992a5ebef2 Gerald Schaefer 2013-04-29 26 {
106c992a5ebef2 Gerald Schaefer 2013-04-29 @27 return pte_mkdirty(pte);
106c992a5ebef2 Gerald Schaefer 2013-04-29 28 }
106c992a5ebef2 Gerald Schaefer 2013-04-29 29
106c992a5ebef2 Gerald Schaefer 2013-04-29 30 static inline pte_t huge_pte_modify(pte_t pte, pgprot_t newprot)
106c992a5ebef2 Gerald Schaefer 2013-04-29 31 {
106c992a5ebef2 Gerald Schaefer 2013-04-29 @32 return pte_modify(pte, newprot);
106c992a5ebef2 Gerald Schaefer 2013-04-29 33 }
106c992a5ebef2 Gerald Schaefer 2013-04-29 34
d018498ccc9277 Alexandre Ghiti 2018-10-26 35 #ifndef __HAVE_ARCH_HUGE_PTE_CLEAR
106c992a5ebef2 Gerald Schaefer 2013-04-29 36 static inline void huge_pte_clear(struct mm_struct *mm, unsigned long addr,
9386fac34c7cbe Punit Agrawal 2017-07-06 37 pte_t *ptep, unsigned long sz)
106c992a5ebef2 Gerald Schaefer 2013-04-29 38 {
106c992a5ebef2 Gerald Schaefer 2013-04-29 @39 pte_clear(mm, addr, ptep);
106c992a5ebef2 Gerald Schaefer 2013-04-29 40 }
9386fac34c7cbe Punit Agrawal 2017-07-06 41 #endif
106c992a5ebef2 Gerald Schaefer 2013-04-29 42
1e5f50fc9d0a65 Alexandre Ghiti 2018-10-26 43 #ifndef __HAVE_ARCH_HUGETLB_FREE_PGD_RANGE
1e5f50fc9d0a65 Alexandre Ghiti 2018-10-26 44 static inline void hugetlb_free_pgd_range(struct mmu_gather *tlb,
1e5f50fc9d0a65 Alexandre Ghiti 2018-10-26 45 unsigned long addr, unsigned long end,
1e5f50fc9d0a65 Alexandre Ghiti 2018-10-26 46 unsigned long floor, unsigned long ceiling)
1e5f50fc9d0a65 Alexandre Ghiti 2018-10-26 47 {
1e5f50fc9d0a65 Alexandre Ghiti 2018-10-26 48 free_pgd_range(tlb, addr, end, floor, ceiling);
1e5f50fc9d0a65 Alexandre Ghiti 2018-10-26 49 }
cea685d556330b Alexandre Ghiti 2018-10-26 50 #endif
1e5f50fc9d0a65 Alexandre Ghiti 2018-10-26 51
cea685d556330b Alexandre Ghiti 2018-10-26 52 #ifndef __HAVE_ARCH_HUGE_SET_HUGE_PTE_AT
cea685d556330b Alexandre Ghiti 2018-10-26 53 static inline void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
cea685d556330b Alexandre Ghiti 2018-10-26 54 pte_t *ptep, pte_t pte)
cea685d556330b Alexandre Ghiti 2018-10-26 55 {
cea685d556330b Alexandre Ghiti 2018-10-26 @56 set_pte_at(mm, addr, ptep, pte);
cea685d556330b Alexandre Ghiti 2018-10-26 57 }
1e5f50fc9d0a65 Alexandre Ghiti 2018-10-26 58 #endif
1e5f50fc9d0a65 Alexandre Ghiti 2018-10-26 59
a4d838536c6e5c Alexandre Ghiti 2018-10-26 60 #ifndef __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
a4d838536c6e5c Alexandre Ghiti 2018-10-26 61 static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
a4d838536c6e5c Alexandre Ghiti 2018-10-26 62 unsigned long addr, pte_t *ptep)
a4d838536c6e5c Alexandre Ghiti 2018-10-26 63 {
a4d838536c6e5c Alexandre Ghiti 2018-10-26 @64 return ptep_get_and_clear(mm, addr, ptep);
a4d838536c6e5c Alexandre Ghiti 2018-10-26 65 }
a4d838536c6e5c Alexandre Ghiti 2018-10-26 66 #endif
a4d838536c6e5c Alexandre Ghiti 2018-10-26 67
fe632225bdbd49 Alexandre Ghiti 2018-10-26 68 #ifndef __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH
fe632225bdbd49 Alexandre Ghiti 2018-10-26 69 static inline void huge_ptep_clear_flush(struct vm_area_struct *vma,
fe632225bdbd49 Alexandre Ghiti 2018-10-26 70 unsigned long addr, pte_t *ptep)
fe632225bdbd49 Alexandre Ghiti 2018-10-26 71 {
fe632225bdbd49 Alexandre Ghiti 2018-10-26 @72 ptep_clear_flush(vma, addr, ptep);
fe632225bdbd49 Alexandre Ghiti 2018-10-26 73 }
fe632225bdbd49 Alexandre Ghiti 2018-10-26 74 #endif
fe632225bdbd49 Alexandre Ghiti 2018-10-26 75
cae72abc1af0c1 Alexandre Ghiti 2018-10-26 76 #ifndef __HAVE_ARCH_HUGE_PTE_NONE
cae72abc1af0c1 Alexandre Ghiti 2018-10-26 77 static inline int huge_pte_none(pte_t pte)
cae72abc1af0c1 Alexandre Ghiti 2018-10-26 78 {
cae72abc1af0c1 Alexandre Ghiti 2018-10-26 @79 return pte_none(pte);
cae72abc1af0c1 Alexandre Ghiti 2018-10-26 80 }
cae72abc1af0c1 Alexandre Ghiti 2018-10-26 81 #endif
cae72abc1af0c1 Alexandre Ghiti 2018-10-26 82
c4916a008665a6 Alexandre Ghiti 2018-10-26 83 #ifndef __HAVE_ARCH_HUGE_PTE_WRPROTECT
c4916a008665a6 Alexandre Ghiti 2018-10-26 84 static inline pte_t huge_pte_wrprotect(pte_t pte)
c4916a008665a6 Alexandre Ghiti 2018-10-26 85 {
c4916a008665a6 Alexandre Ghiti 2018-10-26 @86 return pte_wrprotect(pte);
c4916a008665a6 Alexandre Ghiti 2018-10-26 87 }
c4916a008665a6 Alexandre Ghiti 2018-10-26 88 #endif
c4916a008665a6 Alexandre Ghiti 2018-10-26 89
78d6e4e8ea8700 Alexandre Ghiti 2018-10-26 90 #ifndef __HAVE_ARCH_PREPARE_HUGEPAGE_RANGE
78d6e4e8ea8700 Alexandre Ghiti 2018-10-26 91 static inline int prepare_hugepage_range(struct file *file,
78d6e4e8ea8700 Alexandre Ghiti 2018-10-26 92 unsigned long addr, unsigned long len)
78d6e4e8ea8700 Alexandre Ghiti 2018-10-26 93 {
78d6e4e8ea8700 Alexandre Ghiti 2018-10-26 94 struct hstate *h = hstate_file(file);
78d6e4e8ea8700 Alexandre Ghiti 2018-10-26 95
78d6e4e8ea8700 Alexandre Ghiti 2018-10-26 96 if (len & ~huge_page_mask(h))
78d6e4e8ea8700 Alexandre Ghiti 2018-10-26 97 return -EINVAL;
78d6e4e8ea8700 Alexandre Ghiti 2018-10-26 98 if (addr & ~huge_page_mask(h))
78d6e4e8ea8700 Alexandre Ghiti 2018-10-26 99 return -EINVAL;
78d6e4e8ea8700 Alexandre Ghiti 2018-10-26 100
78d6e4e8ea8700 Alexandre Ghiti 2018-10-26 101 return 0;
78d6e4e8ea8700 Alexandre Ghiti 2018-10-26 102 }
78d6e4e8ea8700 Alexandre Ghiti 2018-10-26 103 #endif
78d6e4e8ea8700 Alexandre Ghiti 2018-10-26 104
8e581d433bf796 Alexandre Ghiti 2018-10-26 105 #ifndef __HAVE_ARCH_HUGE_PTEP_SET_WRPROTECT
8e581d433bf796 Alexandre Ghiti 2018-10-26 106 static inline void huge_ptep_set_wrprotect(struct mm_struct *mm,
8e581d433bf796 Alexandre Ghiti 2018-10-26 107 unsigned long addr, pte_t *ptep)
8e581d433bf796 Alexandre Ghiti 2018-10-26 108 {
8e581d433bf796 Alexandre Ghiti 2018-10-26 @109 ptep_set_wrprotect(mm, addr, ptep);
8e581d433bf796 Alexandre Ghiti 2018-10-26 110 }
8e581d433bf796 Alexandre Ghiti 2018-10-26 111 #endif
8e581d433bf796 Alexandre Ghiti 2018-10-26 112
facf6d5b8b6c42 Alexandre Ghiti 2018-10-26 113 #ifndef __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS
facf6d5b8b6c42 Alexandre Ghiti 2018-10-26 114 static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma,
facf6d5b8b6c42 Alexandre Ghiti 2018-10-26 115 unsigned long addr, pte_t *ptep,
facf6d5b8b6c42 Alexandre Ghiti 2018-10-26 116 pte_t pte, int dirty)
facf6d5b8b6c42 Alexandre Ghiti 2018-10-26 117 {
facf6d5b8b6c42 Alexandre Ghiti 2018-10-26 @118 return ptep_set_access_flags(vma, addr, ptep, pte, dirty);
facf6d5b8b6c42 Alexandre Ghiti 2018-10-26 119 }
facf6d5b8b6c42 Alexandre Ghiti 2018-10-26 120 #endif
facf6d5b8b6c42 Alexandre Ghiti 2018-10-26 121
:::::: The code at line 7 was first introduced by commit
:::::: 106c992a5ebef28193cf5958e49ceff5e4aebb04 mm/hugetlb: add more arch-defined huge_pte functions
:::::: TO: Gerald Schaefer <gerald.schaefer@...ibm.com>
:::::: CC: Linus Torvalds <torvalds@...ux-foundation.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation
Download attachment ".config.gz" of type "application/gzip" (30749 bytes)
Powered by blists - more mailing lists