* [linux-next:master 8238/8302] mm/memory.c:1844:12: warning: spinlock 'pmd_lockptr(mm, pmd)' is not held on every path through here
@ 2026-01-20 23:39 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-01-20 23:39 UTC (permalink / raw)
To: Ingo Molnar; +Cc: llvm, oe-kbuild-all, Mark Brown
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 053966c344dbd346e71305f530e91ea77916189f
commit: 4896ab38023ae4bb2f070083d425b3836a364b7e [8238/8302] Merge branch 'master' of https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
config: s390-randconfig-002-20260121 (https://download.01.org/0day-ci/archive/20260121/202601210715.vxSStJeF-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 9b8addffa70cee5b2acc5454712d9cf78ce45710)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260121/202601210715.vxSStJeF-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601210715.vxSStJeF-lkp@intel.com/
All warnings (new ones prefixed by >>):
include/linux/compiler-context-analysis.h:334:23: note: expanded from macro '__acquire'
334 | #define __acquire(x) __acquire_ctx_lock(x)
| ^
In file included from mm/memory.c:44:
In file included from include/linux/mm_inline.h:8:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:1481:2: warning: releasing spinlock 'lruvec->lru_lock' that was not held [-Wthread-safety-analysis]
1481 | spin_unlock(&lruvec->lru_lock);
| ^
include/linux/memcontrol.h:1486:2: warning: releasing spinlock 'lruvec->lru_lock' that was not held [-Wthread-safety-analysis]
1486 | spin_unlock_irq(&lruvec->lru_lock);
| ^
include/linux/memcontrol.h:1492:2: warning: releasing spinlock 'lruvec->lru_lock' that was not held [-Wthread-safety-analysis]
1492 | spin_unlock_irqrestore(&lruvec->lru_lock, flags);
| ^
In file included from mm/memory.c:48:
include/linux/hugetlb.h:1318:1: warning: spinlock 'huge_pte_lockptr(h, mm, pte)' is still held at the end of function [-Wthread-safety-analysis]
1318 | }
| ^
include/linux/hugetlb.h:1316:2: note: spinlock acquired here
1316 | spin_lock(ptl);
| ^
In file included from mm/memory.c:55:
In file included from include/linux/ksm.h:14:
include/linux/rmap.h:115:1: warning: __context_bitlock '((#undefined * 8) - 1) + folio->....._mm_ids' is still held at the end of function [-Wthread-safety-analysis]
115 | }
| ^
include/linux/rmap.h:114:2: note: __context_bitlock acquired here
114 | bit_spin_lock(FOLIO_MM_IDS_LOCK_BITNUM, &folio->_mm_ids);
| ^
include/linux/rmap.h:119:2: warning: releasing __context_bitlock '((#undefined * 8) - 1) + folio->....._mm_ids' that was not held [-Wthread-safety-analysis]
119 | __bit_spin_unlock(FOLIO_MM_IDS_LOCK_BITNUM, &folio->_mm_ids);
| ^
include/linux/rmap.h:892:3: warning: releasing spinlock 'pvmw->ptl' that was not held [-Wthread-safety-analysis]
892 | spin_unlock(pvmw->ptl);
| ^
include/linux/rmap.h:910:3: warning: releasing spinlock 'pvmw->ptl' that was not held [-Wthread-safety-analysis]
910 | spin_unlock(pvmw->ptl);
| ^
In file included from mm/memory.c:68:
In file included from include/linux/shmem_fs.h:11:
In file included from include/linux/fs_parser.h:11:
In file included from include/linux/fs_context.h:14:
In file included from include/linux/security.h:35:
include/linux/bpf.h:2470:24: warning: __ctx_lock_RCU 'RCU' is not held on every path through here [-Wthread-safety-analysis]
2470 | run_ctx.bpf_cookie = item->bpf_cookie;
| ^
include/linux/bpf.h:2468:4: note: __ctx_lock_RCU acquired here
2468 | rcu_read_lock();
| ^
include/linux/bpf.h:2475:4: warning: releasing __ctx_lock_RCU 'RCU' that was not held [-Wthread-safety-analysis]
2475 | rcu_read_unlock();
| ^
In file included from mm/memory.c:90:
mm/internal.h:221:1: warning: rw_semaphore 'anon_vma->root->rwsem' is still held at the end of function [-Wthread-safety-analysis]
221 | }
| ^
mm/internal.h:220:2: note: rw_semaphore acquired here
220 | down_write(&anon_vma->root->rwsem);
| ^
mm/internal.h:230:2: warning: releasing rw_semaphore 'anon_vma->root->rwsem' that was not held [-Wthread-safety-analysis]
230 | up_write(&anon_vma->root->rwsem);
| ^
mm/internal.h:236:1: warning: rw_semaphore 'anon_vma->root->rwsem' is still held at the end of function [-Wthread-safety-analysis]
236 | }
| ^
mm/internal.h:235:2: note: rw_semaphore acquired here
235 | down_read(&anon_vma->root->rwsem);
| ^
mm/internal.h:245:2: warning: releasing rw_semaphore 'anon_vma->root->rwsem' that was not held [-Wthread-safety-analysis]
245 | up_read(&anon_vma->root->rwsem);
| ^
In file included from mm/memory.c:91:
mm/swap.h:118:1: warning: spinlock '__swap_offset_to_cluster(si, offset).lock' is still held at the end of function [-Wthread-safety-analysis]
118 | }
| ^
mm/swap.h:116:3: note: spinlock acquired here
116 | spin_lock(&ci->lock);
| ^
mm/swap.h:178:2: warning: releasing spinlock 'ci->lock' that was not held [-Wthread-safety-analysis]
178 | spin_unlock(&ci->lock);
| ^
mm/swap.h:183:2: warning: releasing spinlock 'ci->lock' that was not held [-Wthread-safety-analysis]
183 | spin_unlock_irq(&ci->lock);
| ^
mm/memory.c:463:2: warning: releasing spinlock 'pmd_lock(mm, pmd)' that was not held [-Wthread-safety-analysis]
463 | spin_unlock(ptl);
| ^
mm/memory.c:1267:3: warning: releasing spinlock 'dst_ptl' that was not held [-Wthread-safety-analysis]
1267 | pte_unmap_unlock(dst_pte, dst_ptl);
| ^
include/linux/mm.h:3359:2: note: expanded from macro 'pte_unmap_unlock'
3359 | spin_unlock(ptl); \
| ^
mm/memory.c:1346:2: warning: releasing spinlock 'dst_ptl' that was not held [-Wthread-safety-analysis]
1346 | pte_unmap_unlock(orig_dst_pte, dst_ptl);
| ^
include/linux/mm.h:3359:2: note: expanded from macro 'pte_unmap_unlock'
3359 | spin_unlock(ptl); \
| ^
>> mm/memory.c:1844:12: warning: spinlock 'pmd_lockptr(mm, pmd)' is not held on every path through here [-Wthread-safety-analysis]
1844 | *pmdval = pmdp_get(pmd);
| ^
mm/memory.c:1841:21: note: spinlock acquired here
1841 | if (ptl != pml && !spin_trylock(pml))
| ^
>> mm/memory.c:1847:3: warning: releasing spinlock 'pmd_lockptr(mm, pmd)' that was not held [-Wthread-safety-analysis]
1847 | spin_unlock(pml);
| ^
>> mm/memory.c:1865:11: warning: spinlock 'ptl' is not held on every path through here [-Wthread-safety-analysis]
1865 | for (i = 0, pte = start_pte; i < PTRS_PER_PTE; i++, pte++) {
| ^
mm/memory.c:1863:3: note: spinlock acquired here
1863 | spin_lock_nested(ptl, SINGLE_DEPTH_NESTING);
| ^
include/linux/spinlock.h:362:35: note: expanded from macro 'spin_lock_nested'
362 | __release(spinlock_check(lock)); __acquire(lock); \
| ^
include/linux/compiler-context-analysis.h:334:23: note: expanded from macro '__acquire'
334 | #define __acquire(x) __acquire_ctx_lock(x)
| ^
mm/memory.c:1874:3: warning: releasing spinlock 'ptl' that was not held [-Wthread-safety-analysis]
1874 | spin_unlock(ptl);
| ^
mm/memory.c:1875:2: warning: releasing spinlock 'pmd_lock(mm, pmd)' that was not held [-Wthread-safety-analysis]
1875 | spin_unlock(pml);
| ^
mm/memory.c:1879:3: warning: releasing spinlock 'ptl' that was not held [-Wthread-safety-analysis]
1879 | pte_unmap_unlock(start_pte, ptl);
| ^
include/linux/mm.h:3359:2: note: expanded from macro 'pte_unmap_unlock'
3359 | spin_unlock(ptl); \
| ^
mm/memory.c:1881:3: warning: releasing spinlock 'pmd_lock(mm, pmd)' that was not held [-Wthread-safety-analysis]
1881 | spin_unlock(pml);
| ^
mm/memory.c:1949:2: warning: releasing spinlock 'ptl' that was not held [-Wthread-safety-analysis]
1949 | pte_unmap_unlock(start_pte, ptl);
| ^
include/linux/mm.h:3359:2: note: expanded from macro 'pte_unmap_unlock'
3359 | spin_unlock(ptl); \
| ^
mm/memory.c:2005:4: warning: releasing spinlock 'pmd_lock(tlb->mm, pmd_offset(pud, addr))' that was not held [-Wthread-safety-analysis]
2005 | spin_unlock(ptl);
| ^
mm/memory.c:2388:2: warning: releasing spinlock 'ptl' that was not held [-Wthread-safety-analysis]
2388 | pte_unmap_unlock(pte, ptl);
| ^
include/linux/mm.h:3359:2: note: expanded from macro 'pte_unmap_unlock'
3359 | spin_unlock(ptl); \
| ^
mm/memory.c:2445:5: warning: releasing spinlock 'pte_lock' that was not held [-Wthread-safety-analysis]
2445 | pte_unmap_unlock(start_pte, pte_lock);
| ^
include/linux/mm.h:3359:2: note: expanded from macro 'pte_unmap_unlock'
3359 | spin_unlock(ptl); \
| ^
mm/memory.c:2453:3: warning: releasing spinlock 'pte_lock' that was not held [-Wthread-safety-analysis]
2453 | pte_unmap_unlock(start_pte, pte_lock);
| ^
include/linux/mm.h:3359:2: note: expanded from macro 'pte_unmap_unlock'
3359 | spin_unlock(ptl); \
| ^
mm/memory.c:2671:2: warning: releasing spinlock 'ptl' that was not held [-Wthread-safety-analysis]
2671 | pte_unmap_unlock(pte, ptl);
| ^
include/linux/mm.h:3359:2: note: expanded from macro 'pte_unmap_unlock'
3359 | spin_unlock(ptl); \
| ^
mm/memory.c:2887:2: warning: releasing spinlock 'ptl' that was not held [-Wthread-safety-analysis]
2887 | pte_unmap_unlock(mapped_pte, ptl);
| ^
include/linux/mm.h:3359:2: note: expanded from macro 'pte_unmap_unlock'
3359 | spin_unlock(ptl); \
| ^
mm/memory.c:3253:3: warning: releasing spinlock 'ptl' that was not held [-Wthread-safety-analysis]
3253 | pte_unmap_unlock(mapped_pte, ptl);
| ^
include/linux/mm.h:3359:2: note: expanded from macro 'pte_unmap_unlock'
3359 | spin_unlock(ptl); \
| ^
mm/memory.c:3549:3: warning: releasing spinlock 'vmf->ptl' that was not held [-Wthread-safety-analysis]
3549 | pte_unmap_unlock(vmf->pte, vmf->ptl);
| ^
include/linux/mm.h:3359:2: note: expanded from macro 'pte_unmap_unlock'
3359 | spin_unlock(ptl); \
| ^
mm/memory.c:3880:3: warning: releasing spinlock 'vmf->ptl' that was not held [-Wthread-safety-analysis]
3880 | pte_unmap_unlock(vmf->pte, vmf->ptl);
| ^
include/linux/mm.h:3359:2: note: expanded from macro 'pte_unmap_unlock'
3359 | spin_unlock(ptl); \
| ^
mm/memory.c:3883:3: warning: releasing spinlock 'vmf->ptl' that was not held [-Wthread-safety-analysis]
3883 | pte_unmap_unlock(vmf->pte, vmf->ptl);
| ^
include/linux/mm.h:3359:2: note: expanded from macro 'pte_unmap_unlock'
3359 | spin_unlock(ptl); \
| ^
mm/memory.c:3938:3: warning: releasing spinlock 'vmf->ptl' that was not held [-Wthread-safety-analysis]
3938 | pte_unmap_unlock(vmf->pte, vmf->ptl);
| ^
include/linux/mm.h:3359:2: note: expanded from macro 'pte_unmap_unlock'
3359 | spin_unlock(ptl); \
| ^
mm/memory.c:3941:2: warning: releasing spinlock 'vmf->ptl' that was not held [-Wthread-safety-analysis]
3941 | wp_page_reuse(vmf, folio);
| ^
mm/memory.c:3956:3: warning: releasing spinlock 'vmf->ptl' that was not held [-Wthread-safety-analysis]
3956 | pte_unmap_unlock(vmf->pte, vmf->ptl);
--
398 | }
| ^
include/linux/mmap_lock.h:396:2: note: rw_semaphore acquired here
396 | down_read(&mm->mmap_lock);
| ^
include/linux/mmap_lock.h:423:2: warning: releasing rw_semaphore 'mm->.mmap_lock' that was not held [-Wthread-safety-analysis]
423 | up_read(&mm->mmap_lock);
| ^
include/linux/mmap_lock.h:432:2: warning: releasing rw_semaphore 'mm->.mmap_lock' that was not held [-Wthread-safety-analysis]
432 | up_read_non_owner(&mm->mmap_lock);
| ^
In file included from fs/ext4/symlink.c:23:
In file included from fs/ext4/ext4.h:22:
In file included from include/linux/blkdev.h:9:
In file included from include/linux/blk_types.h:10:
In file included from include/linux/bvec.h:10:
In file included from include/linux/highmem.h:10:
In file included from include/linux/mm.h:1274:
In file included from include/linux/huge_mm.h:8:
In file included from include/linux/kobject.h:20:
In file included from include/linux/sysfs.h:16:
In file included from include/linux/kernfs.h:12:
include/linux/idr.h:191:2: warning: releasing local_lock 'radix_tree_preloads.lock' that was not held [-Wthread-safety-analysis]
191 | local_unlock(&radix_tree_preloads.lock);
| ^
include/linux/local_lock.h:38:29: note: expanded from macro 'local_unlock'
38 | #define local_unlock(lock) __local_unlock(__this_cpu_local_lock(lock))
| ^
include/linux/local_lock_internal.h:202:3: note: expanded from macro '__local_unlock'
202 | __release(lock); \
| ^
include/linux/compiler-context-analysis.h:342:23: note: expanded from macro '__release'
342 | #define __release(x) __release_ctx_lock(x)
| ^
In file included from fs/ext4/symlink.c:23:
In file included from fs/ext4/ext4.h:22:
In file included from include/linux/blkdev.h:9:
In file included from include/linux/blk_types.h:10:
In file included from include/linux/bvec.h:10:
In file included from include/linux/highmem.h:10:
include/linux/mm.h:3422:1: warning: spinlock 'pmd_lockptr(mm, pmd)' is still held at the end of function [-Wthread-safety-analysis]
3422 | }
| ^
include/linux/mm.h:3420:2: note: spinlock acquired here
3420 | spin_lock(ptl);
| ^
include/linux/mm.h:3451:1: warning: spinlock 'pud_lockptr(mm, pud)' is still held at the end of function [-Wthread-safety-analysis]
3451 | }
| ^
include/linux/mm.h:3449:2: note: spinlock acquired here
3449 | spin_lock(ptl);
| ^
In file included from fs/ext4/symlink.c:23:
In file included from fs/ext4/ext4.h:22:
In file included from include/linux/blkdev.h:9:
In file included from include/linux/blk_types.h:11:
include/linux/device.h:896:1: warning: mutex 'dev->mutex' is still held at the end of function [-Wthread-safety-analysis]
896 | }
| ^
include/linux/device.h:895:2: note: mutex acquired here
895 | mutex_lock(&dev->mutex);
| ^
include/linux/mutex.h:194:26: note: expanded from macro 'mutex_lock'
194 | #define mutex_lock(lock) mutex_lock_nested(lock, 0)
| ^
In file included from fs/ext4/symlink.c:23:
In file included from fs/ext4/ext4.h:22:
In file included from include/linux/blkdev.h:9:
In file included from include/linux/blk_types.h:11:
include/linux/device.h:910:2: warning: releasing mutex 'dev->mutex' that was not held [-Wthread-safety-analysis]
910 | mutex_unlock(&dev->mutex);
| ^
In file included from fs/ext4/symlink.c:23:
In file included from fs/ext4/ext4.h:22:
include/linux/blkdev.h:1090:1: warning: mutex 'q->limits_lock' is still held at the end of function [-Wthread-safety-analysis]
1090 | }
| ^
include/linux/blkdev.h:1088:2: note: mutex acquired here
1088 | mutex_lock(&q->limits_lock);
| ^
include/linux/mutex.h:194:26: note: expanded from macro 'mutex_lock'
194 | #define mutex_lock(lock) mutex_lock_nested(lock, 0)
| ^
In file included from fs/ext4/symlink.c:23:
In file included from fs/ext4/ext4.h:22:
include/linux/blkdev.h:1108:2: warning: releasing mutex 'q->limits_lock' that was not held [-Wthread-safety-analysis]
1108 | mutex_unlock(&q->limits_lock);
| ^
In file included from fs/ext4/symlink.c:23:
In file included from fs/ext4/ext4.h:24:
include/linux/jbd2.h:344:1: warning: __context_bitlock 'BH_JournalHead + bh->b_state' is still held at the end of function [-Wthread-safety-analysis]
344 | }
| ^
include/linux/jbd2.h:343:2: note: __context_bitlock acquired here
343 | bit_spin_lock(BH_JournalHead, &bh->b_state);
| ^
include/linux/jbd2.h:348:2: warning: releasing __context_bitlock 'BH_JournalHead + bh->b_state' that was not held [-Wthread-safety-analysis]
348 | bit_spin_unlock(BH_JournalHead, &bh->b_state);
| ^
In file included from fs/ext4/symlink.c:23:
>> fs/ext4/ext4.h:1843:1: warning: mutex 'EXT4_SB(sb).s_fc_lock' is still held at the end of function [-Wthread-safety-analysis]
1843 | }
| ^
fs/ext4/ext4.h:1841:2: note: mutex acquired here
1841 | mutex_lock(&EXT4_SB(sb)->s_fc_lock);
| ^
include/linux/mutex.h:194:26: note: expanded from macro 'mutex_lock'
194 | #define mutex_lock(lock) mutex_lock_nested(lock, 0)
| ^
In file included from fs/ext4/symlink.c:23:
>> fs/ext4/ext4.h:1848:2: warning: releasing mutex 'EXT4_SB(sb).s_fc_lock' that was not held [-Wthread-safety-analysis]
1848 | mutex_unlock(&EXT4_SB(sb)->s_fc_lock);
| ^
fs/ext4/ext4.h:3589:1: warning: spinlock 'ext4_group_lock_ptr(sb, group)' is not held on every path through here [-Wthread-safety-analysis]
3589 | }
| ^
fs/ext4/ext4.h:3581:7: note: spinlock acquired here
3581 | if (!spin_trylock(ext4_group_lock_ptr(sb, group)))
| ^
fs/ext4/ext4.h:3602:1: warning: spinlock 'ext4_group_lock_ptr(sb, group)' is not held on every path through here [-Wthread-safety-analysis]
3602 | }
| ^
fs/ext4/ext4.h:3600:3: note: spinlock acquired here
3600 | spin_lock(ext4_group_lock_ptr(sb, group));
| ^
fs/ext4/ext4.h:3607:2: warning: releasing spinlock 'ext4_group_lock_ptr(sb, group)' that was not held [-Wthread-safety-analysis]
3607 | spin_unlock(ext4_group_lock_ptr(sb, group));
| ^
In file included from fs/ext4/symlink.c:24:
fs/ext4/xattr.h:160:1: warning: rw_semaphore 'EXT4_I(inode).xattr_sem' is still held at the end of function [-Wthread-safety-analysis]
160 | }
| ^
fs/ext4/xattr.h:157:2: note: rw_semaphore acquired here
157 | down_write(&EXT4_I(inode)->xattr_sem);
| ^
fs/ext4/xattr.h:169:1: warning: rw_semaphore 'EXT4_I(inode).xattr_sem' is not held on every path through here [-Wthread-safety-analysis]
169 | }
| ^
fs/ext4/xattr.h:164:6: note: rw_semaphore acquired here
164 | if (down_write_trylock(&EXT4_I(inode)->xattr_sem) == 0)
| ^
fs/ext4/xattr.h:175:2: warning: releasing rw_semaphore 'EXT4_I(inode).xattr_sem' that was not held [-Wthread-safety-analysis]
175 | up_write(&EXT4_I(inode)->xattr_sem);
| ^
44 warnings generated.
..
vim +1844 mm/memory.c
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1835)
1355b4064623472 David Hildenbrand (Red Hat 2026-01-19 1836) static bool zap_empty_pte_table(struct mm_struct *mm, pmd_t *pmd,
1355b4064623472 David Hildenbrand (Red Hat 2026-01-19 1837) spinlock_t *ptl, pmd_t *pmdval)
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1838) {
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1839) spinlock_t *pml = pmd_lockptr(mm, pmd);
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1840)
1355b4064623472 David Hildenbrand (Red Hat 2026-01-19 1841) if (ptl != pml && !spin_trylock(pml))
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1842) return false;
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1843)
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 @1844) *pmdval = pmdp_get(pmd);
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1845) pmd_clear(pmd);
1355b4064623472 David Hildenbrand (Red Hat 2026-01-19 1846) if (ptl != pml)
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 @1847) spin_unlock(pml);
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1848) return true;
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1849) }
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1850)
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1851) static bool zap_pte_table_if_empty(struct mm_struct *mm, pmd_t *pmd,
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1852) unsigned long addr, pmd_t *pmdval)
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1853) {
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1854) spinlock_t *pml, *ptl = NULL;
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1855) pte_t *start_pte, *pte;
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1856) int i;
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1857)
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1858) pml = pmd_lock(mm, pmd);
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1859) start_pte = pte_offset_map_rw_nolock(mm, pmd, addr, pmdval, &ptl);
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1860) if (!start_pte)
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1861) goto out_ptl;
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1862) if (ptl != pml)
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1863) spin_lock_nested(ptl, SINGLE_DEPTH_NESTING);
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1864)
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 @1865) for (i = 0, pte = start_pte; i < PTRS_PER_PTE; i++, pte++) {
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1866) if (!pte_none(ptep_get(pte)))
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1867) goto out_ptl;
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1868) }
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1869) pte_unmap(start_pte);
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1870)
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1871) pmd_clear(pmd);
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1872)
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1873) if (ptl != pml)
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1874) spin_unlock(ptl);
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1875) spin_unlock(pml);
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1876) return true;
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1877) out_ptl:
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1878) if (start_pte)
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1879) pte_unmap_unlock(start_pte, ptl);
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1880) if (ptl != pml)
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1881) spin_unlock(pml);
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1882) return false;
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1883) }
ba40d7ff6ac6527 David Hildenbrand (Red Hat 2026-01-19 1884)
:::::: The code at line 1844 was first introduced by commit
:::::: ba40d7ff6ac6527ccd84ebc327f2f1879b6f8bc5 mm: move pte table reclaim code to memory.c
:::::: TO: David Hildenbrand (Red Hat) <david@kernel.org>
:::::: CC: Andrew Morton <akpm@linux-foundation.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-01-20 23:40 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-20 23:39 [linux-next:master 8238/8302] mm/memory.c:1844:12: warning: spinlock 'pmd_lockptr(mm, pmd)' is not held on every path through here kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox