mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 02:44:41 +01:00
mm: remove unnecessary and incorrect mmap lock assert
This check was introduced by commit42fc541404("mmap locking API: add mmap_assert_locked() and mmap_assert_write_locked()") which replaced a VM_BUG_ON_VMA() over rwsem_is_locked from commita00cc7d9dd("mm, x86: add support for PUD-sized transparent hugepages"), i.e. the commit that introduced PUD THPs. These seem to be careful asserts introduced to ensure that locks are held in general, however for a zap we require that VMAs are kept stable, and this is a requirement that has held perfectly well for a long time. These were long before VMA locks and thus there appears to be no reason to think this is assert is there for anything other than 'stabilised VMA'. Asserting that the VMA under examination is stable only in the case of a THP PUD is strange and unnecessary. If we wish to be careful and assert such things, we should do so at the zap level. However in any case the current situation is already simply incorrect - a VMA lock suffices here. Remove the assert for now as it is unnecessarily, incorrect and unhelpful, subsequent work can introduce an assert in general for zapping if required. Link: https://lkml.kernel.org/r/20260114115619.1087466-1-lorenzo.stoakes@oracle.com Fixes:2ab7f1bbaf("mm/madvise: allow guard page install/remove under VMA lock") Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> Reported-by: Chris Mason <clm@meta.com> Closes: https://lore.kernel.org/all/20260113220856.2358195-1-clm@meta.com/ Acked-by: David Hildenbrand (Red Hat) <david@kernel.org> Cc: Liam Howlett <liam.howlett@oracle.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Mike Rapoport <rppt@kernel.org> Cc: SeongJae Park <sj@kernel.org> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Vlastimil Babka <vbabka@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
b505f19445
commit
90888b4ae1
1 changed files with 2 additions and 3 deletions
|
|
@ -1963,10 +1963,9 @@ static inline unsigned long zap_pud_range(struct mmu_gather *tlb,
|
|||
do {
|
||||
next = pud_addr_end(addr, end);
|
||||
if (pud_trans_huge(*pud)) {
|
||||
if (next - addr != HPAGE_PUD_SIZE) {
|
||||
mmap_assert_locked(tlb->mm);
|
||||
if (next - addr != HPAGE_PUD_SIZE)
|
||||
split_huge_pud(vma, pud, addr);
|
||||
} else if (zap_huge_pud(tlb, vma, pud, addr))
|
||||
else if (zap_huge_pud(tlb, vma, pud, addr))
|
||||
goto next;
|
||||
/* fall through */
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue