Re: [RFC PATCH RESEND 04/28] mm: move mmap_lock assert function definitions

From: Liam Howlett
Date: Thu Sep 01 2022 - 16:54:42 EST


* Kent Overstreet <kent.overstreet@xxxxxxxxx> [220901 16:24]:
> On Thu, Sep 01, 2022 at 10:34:52AM -0700, Suren Baghdasaryan wrote:
> > Move mmap_lock assert function definitions up so that they can be used
> > by other mmap_lock routines.
> >
> > Signed-off-by: Suren Baghdasaryan <surenb@xxxxxxxxxx>
> > ---
> > include/linux/mmap_lock.h | 24 ++++++++++++------------
> > 1 file changed, 12 insertions(+), 12 deletions(-)
> >
> > diff --git a/include/linux/mmap_lock.h b/include/linux/mmap_lock.h
> > index 96e113e23d04..e49ba91bb1f0 100644
> > --- a/include/linux/mmap_lock.h
> > +++ b/include/linux/mmap_lock.h
> > @@ -60,6 +60,18 @@ static inline void __mmap_lock_trace_released(struct mm_struct *mm, bool write)
> >
> > #endif /* CONFIG_TRACING */
> >
> > +static inline void mmap_assert_locked(struct mm_struct *mm)
> > +{
> > + lockdep_assert_held(&mm->mmap_lock);
> > + VM_BUG_ON_MM(!rwsem_is_locked(&mm->mmap_lock), mm);
>
> These look redundant to me - maybe there's a reason the VM developers want both,
> but I would drop the VM_BUG_ON() and just keep the lockdep_assert_held(), since
> that's the standard way to write that assertion.

I think this is because the VM_BUG_ON_MM() will give you a lot more
information and BUG_ON().

lockdep_assert_held() does not return a value and is a WARN_ON().

So they are partially redundant.