Messages in this thread | | | Date | Mon, 20 Jan 2020 11:15:45 +0800 | From | kbuild test robot <> | 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@intel.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@de.ibm.com> :::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
--- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation [unhandled content-type:application/gzip] | |