[GIT PULL] Fix too-short kfree_rcu() grace period for v6.3

From: Paul E. McKenney
Date: Mon Apr 10 2023 - 12:30:43 EST


Hello, Linus,

This fixes an old bug rather than a v6.3 regression, but it is starting
to appear in the wild and has nasty memory-corruption consequences.
Please consider pulling this for v6.3.

The following changes since commit d18a04157fc171fd48075e3dc96471bd3b87f0dd:

rcu: Fix rcu_torture_read ftrace event (2023-03-22 14:05:24 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git tags/urgent-rcu.2023.04.07a

for you to fetch changes up to 5da7cb193db32da783a3f3e77d8b639989321d48:

rcu/kvfree: Avoid freeing new kfree_rcu() memory after old grace period (2023-04-06 10:04:23 -0700)

----------------------------------------------------------------
Urgent RCU pull request for v6.3

This commit fixes a pair of bugs in which an improbable but very real
sequence of events can cause kfree_rcu() to be a bit too quick about
freeing the memory passed to it. It turns out that this pair of bugs
is about two years old, and so this is not a v6.3 regression. However:
(1) It just started showing up in the wild and (2) Its consequences are
dire, so its fix needs to go in sooner rather than later.

Testing is of course being upgraded, and the upgraded tests detect this
situation very quickly. But to the best of my knowledge right now, the
tests are not particularly urgent and will thus most likely show up in
the v6.5 merge window (the one after this coming one).

Kudos to Ziwei Dai and his group for tracking this one down the hard way!

----------------------------------------------------------------
Ziwei Dai (1):
rcu/kvfree: Avoid freeing new kfree_rcu() memory after old grace period

kernel/rcu/tree.c | 27 +++++++++++++++++++--------
1 file changed, 19 insertions(+), 8 deletions(-)