Thread (10 messages) 10 messages, 3 authors, 5d ago

Re: [PATCH net v2] ppp: defer channel free to an RCU grace period to fix pppol2tp RX UAF

From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2026-07-08 07:49:09
Also in: lkml, netdev

On 2026-07-07 17:32:10 [+0200], Petr Pavlu wrote:
quoted
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -858,6 +858,9 @@ SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
 		goto out;
 
 	mutex_unlock(&module_mutex);
+
+	/* Ensure all rcu callbacks issued by the module have completed */
+	rcu_barrier();
 	/* Final destruction now no one is using it. */
 	if (mod->exit != NULL)
 		mod->exit();
make sense?
This is discussed in Documentation/RCU/rcubarrier.rst and
Documentation/RCU/Design/Requirements/Requirements.rst. The latter
contains:
I am aware of this. It is just not the first time I stumble about this.
But maybe with the AI review these days there won't be a miss.
I don't know if the last part about unacceptable latencies is still
relevant. I haven't done any measurements myself.
There is a synchronize_rcu() later on. I think I could replace it with a
call_rcu() so we might end up even. I was thinking about about it last
time I was touching modules but somehow I stopped where I stopped.
The question is just, is it worth doing it or is it reasonable to expect
that it is done correctly.

Sebastian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help