On Wed, Jun 12, 2024 at 09:06:25AM -0700, Paul E. McKenney wrote:
We are looking into nice ways of solving this, but in the meantime, yes, if you are RCU-freeing slab objects into a slab that is destroyed at module-unload time, you currently need to stick with call_rcu() and rcu_barrier().
We do have some potential solutions to allow use of kfree_rcu() with this sort of slab, but they are still strictly potential.
Apologies for my having failed to foresee this particular trap!
Thanx, Paul
No worries, thanks for the help and clarification! This at least restored my sanity, was starting to doubt my understanding of RCU and the batman-adv code the longer I tried to find the issue in batman-adv :D.