From: kernel test robot <lkp@intel.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
Mark Brown <broonie@kernel.org>
Subject: [linux-next:master 8238/8302] mm/memory.c:1844:12: warning: spinlock 'pmd_lockptr(mm, pmd)' is not held on every path through here
Date: Wed, 21 Jan 2026 07:39:47 +0800 [thread overview]
Message-ID: <202601210715.vxSStJeF-lkp@intel.com> (raw)
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
reply other threads:[~2026-01-20 23:40 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202601210715.vxSStJeF-lkp@intel.com \
--to=lkp@intel.com \
--cc=broonie@kernel.org \
--cc=llvm@lists.linux.dev \
--cc=mingo@kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.