[android-common:android15-6.6-2025-08 0/13] mm/pgsize_migration.c:204:19: error: no member named 'vm_lock' in 'struct vm_area_struct'
kernel test robot <[email protected]> Thu, 06 Aug 2026 15:30:01 +0800
| Newsgroups | dev.linux.lists.oe-kbuild-all |
|---|---|
| Message-ID | <[email protected]> |
Hi Kalesh, FYI, the error/warning still remains. tree: https://android.googlesource.com/kernel/common android15-6.6-2025-08 head: 08944e3ae242ce5177ecd96e33de7674550043af commit: 67bb232cd7287051bc998673e42c9a1b7e86e93b [0/13] ANDROID: 16K: Fallback to mmap lock for linker context VMA lookup config: x86_64-randconfig-015-20260806 (https://download.01.org/0day-ci/archive/20260806/[email protected]/config) compiler: clang version 22.1.3 (https://github.com/llvm/llvm-project e9846648fd6183ee6d8cbdb4502213fcf902a211) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260806/[email protected]/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 <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All errors (new ones prefixed by >>): In file included from <built-in>:3: In file included from include/linux/compiler_types.h:150: include/linux/compiler-clang.h:33:9: warning: '__SANITIZE_ADDRESS__' macro redefined [-Wmacro-redefined] 33 | #define __SANITIZE_ADDRESS__ | ^ <built-in>:353:9: note: previous definition is here 353 | #define __SANITIZE_ADDRESS__ 1 | ^ >> mm/pgsize_migration.c:204:19: error: no member named 'vm_lock' in 'struct vm_area_struct' 204 | down_read(&vma->vm_lock->lock); | ~~~ ^ 1 warning and 1 error generated. vim +204 mm/pgsize_migration.c 156 157 /* 158 * The dynamic linker, or interpreter, operates within the process context 159 * of the binary that necessitated dynamic linking. 160 * 161 * Consequently, process context identifiers; like PID, comm, ...; cannot 162 * be used to differentiate whether the execution context belongs to the 163 * dynamic linker or not. 164 * 165 * linker_ctx() deduces whether execution is currently in the dynamic linker's 166 * context by correlating the current userspace instruction pointer with the 167 * VMAs of the current task. 168 * 169 * Returns true if in linker context, otherwise false. 170 */ 171 static inline bool linker_ctx(void) 172 { 173 struct pt_regs *regs = task_pt_regs(current); 174 struct mm_struct *mm = current->mm; 175 struct vm_area_struct *vma; 176 struct file *file; 177 178 if (!regs) 179 return false; 180 181 vma = lock_vma_under_rcu(mm, instruction_pointer(regs)); 182 183 /* 184 * lock_vma_under_rcu() is a try-lock that can fail if the 185 * VMA is already locked for modification. 186 * 187 * Fallback to finding the vma under mmap read lock. 188 */ 189 if (!vma) { 190 mmap_read_lock(mm); 191 192 vma = find_vma(mm, instruction_pointer(regs)); 193 194 /* Current execution context, the VMA must be present */ 195 BUG_ON(!vma); 196 197 /* 198 * We cannot use vma_start_read() as it may fail due to 199 * false locked (see comment in vma_start_read()). We 200 * can avoid that by directly locking vm_lock under 201 * mmap_lock, which guarantees that nobody can lock the 202 * vma for write (vma_start_write()) under us. 203 */ > 204 down_read(&vma->vm_lock->lock); 205 206 mmap_read_unlock(mm); 207 } 208 209 file = vma->vm_file; 210 if (!file) 211 goto out; 212 213 if ((vma->vm_flags & VM_EXEC)) { 214 char buf[64]; 215 const int bufsize = sizeof(buf); 216 char *path; 217 218 memset(buf, 0, bufsize); 219 path = d_path(&file->f_path, buf, bufsize); 220 221 /* 222 * Depending on interpreter requested, valid paths could be any of: 223 * 1. /system/bin/bootstrap/linker64 224 * 2. /system/bin/linker64 225 * 3. /apex/com.android.runtime/bin/linker64 226 * 227 * Check the base name (linker64). 228 */ 229 if (!strcmp(kbasename(path), "linker64")) { 230 vma_end_read(vma); 231 return true; 232 } 233 } 234 out: 235 vma_end_read(vma); 236 return false; 237 } 238 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki