On Feb 17, 2025, at 10:12, Boqun Feng <boqun.f...@gmail.com> wrote: > > Hi Wei, > > The change loosk good to me, thanks! > > I queued the patch for futher reviews and tests with some changes in the > commit log (for title formating and a bit more explanation), please see > below. > > Regards, > Boqun > > On Wed, Jan 01, 2025 at 08:23:06AM +0000, Wei Yang wrote: >> The example code for "Eliminating Stale Data" looks not correct: >> >> * rcu_read_unlock() should put after kstrdup() >> * spin_unlock() should be called before return >> >> Signed-off-by: Wei Yang <richard.weiy...@gmail.com> > [...] > > > ------------------>8 > Subject: [PATCH] doc/RCU/listRCU: Fix an example code snippets > > The example code for "Eliminating Stale Data" looks not correct: > > * rcu_read_unlock() should put after kstrdup(), because otherwise > entry may get freed while kstrdup() is being called. > > * spin_unlock() should be called before return, otherwise the > function would return with the lock of the entry held. > > Hence fix these. > > Signed-off-by: Wei Yang <richard.weiy...@gmail.com> > Link: > https://lore.kernel.org/r/20250101082306.10404-1-richard.weiy...@gmail.com > Signed-off-by: Boqun Feng <boqun.f...@gmail.com> > --- > Documentation/RCU/listRCU.rst | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/Documentation/RCU/listRCU.rst b/Documentation/RCU/listRCU.rst > index ed5c9d8c9afe..8df50fcd69fd 100644 > --- a/Documentation/RCU/listRCU.rst > +++ b/Documentation/RCU/listRCU.rst > @@ -348,9 +348,10 @@ to accomplish this would be to add a ``deleted`` flag > and a ``lock`` spinlock to > rcu_read_unlock(); > return AUDIT_BUILD_CONTEXT; > } > - rcu_read_unlock(); > if (state == AUDIT_STATE_RECORD) > *key = kstrdup(e->rule.filterkey, GFP_ATOMIC); > + spin_unlock(&e->lock);
According to the above quick quiz, we should return with the lock held. > + rcu_read_unlock(); > return state; > } > } > -- >