Re: [PATCH next 1/2] mm/huge_memory: Implementation of THP COW for executable file mmap

From: kernel test robot

Date: Tue Dec 16 2025 - 05:33:49 EST


Hi Zhang,

kernel test robot noticed the following build errors:

[auto build test ERROR on next-20251215]

url: https://github.com/intel-lab-lkp/linux/commits/Zhang-Qilong/mm-huge_memory-Implementation-of-THP-COW-for-executable-file-mmap/20251215-204035
base: next-20251215
patch link: https://lore.kernel.org/r/20251215123407.380813-2-zhangqilong3%40huawei.com
patch subject: [PATCH next 1/2] mm/huge_memory: Implementation of THP COW for executable file mmap
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20251216/202512161154.iIbhbvhS-lkp@xxxxxxxxx/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251216/202512161154.iIbhbvhS-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512161154.iIbhbvhS-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

>> mm/memory.c:6134:7: error: call to undeclared function 'vma_is_special_huge'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
6134 | if (vma_is_special_huge(vma) || vma_is_shmem(vma))
| ^
1 error generated.


vim +/vma_is_special_huge +6134 mm/memory.c

6104
6105 /* `inline' is required to avoid gcc 4.1.2 build error */
6106 static inline vm_fault_t wp_huge_pmd(struct vm_fault *vmf)
6107 {
6108 struct vm_area_struct *vma = vmf->vma;
6109 const bool unshare = vmf->flags & FAULT_FLAG_UNSHARE;
6110 vm_fault_t ret;
6111
6112 if (vma_is_anonymous(vma)) {
6113 if (likely(!unshare) &&
6114 userfaultfd_huge_pmd_wp(vma, vmf->orig_pmd)) {
6115 if (userfaultfd_wp_async(vmf->vma))
6116 goto split;
6117 return handle_userfault(vmf, VM_UFFD_WP);
6118 }
6119 return do_huge_pmd_wp_page(vmf);
6120 }
6121
6122 if (vma->vm_flags & (VM_SHARED | VM_MAYSHARE)) {
6123 if (vma->vm_ops->huge_fault) {
6124 ret = vma->vm_ops->huge_fault(vmf, PMD_ORDER);
6125 if (!(ret & VM_FAULT_FALLBACK))
6126 return ret;
6127 }
6128 }
6129
6130
6131 if (is_exec_mapping(vma->vm_flags) &&
6132 is_cow_mapping(vma->vm_flags)) {
6133 /* Skip special and shmem */
> 6134 if (vma_is_special_huge(vma) || vma_is_shmem(vma))
6135 goto split;
6136
6137 ret = do_huge_pmd_exec_cow(vmf);
6138 if (!(ret & VM_FAULT_FALLBACK))
6139 return ret;
6140 }
6141
6142 split:
6143 /* COW or write-notify handled on pte level: split pmd. */
6144 __split_huge_pmd(vma, vmf->pmd, vmf->address, false);
6145
6146 return VM_FAULT_FALLBACK;
6147 }
6148

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki