On Sun, Oct 27, 2024 at 06:08:15PM -0700, Andrii Nakryiko wrote: > +/* > + * Drop all currently-held per-VMA locks. > + * This is called from the mmap_lock implementation directly before releasing > + * a write-locked mmap_lock (or downgrading it to read-locked). > + * This should normally NOT be called manually from other places. > + * If you want to call this manually anyway, keep in mind that this will release > + * *all* VMA write locks, including ones from further up the stack. > + */ > +static inline void vma_end_write_all(struct mm_struct *mm) > +{ > + mmap_assert_write_locked(mm); > + /* > + * Nobody can concurrently modify mm->mm_lock_seq due to exclusive > + * mmap_lock being held. > + */ You can write: ASSERT_EXCLUSIVE_WRITER(mm->mm_lock_seq); instead of that comment. Then KCSAN will validate the claim. > + mm_lock_seqcount_end(mm); > +}