On Wed, 2009-06-24 at 13:44 +0200, Jesper Dangaard Brouer wrote:On Wed, 2009-06-24 at 07:23 +0100, Chrissie Caulfield wrote:The issues with DECnet module unloading are a little more than just an
RCU leak I think!
Though that area does need reviewing ... when I get some time.
Fine. Now you have read my comment in the code, then there is a updated
patch below. Will you ack-that?
Sorry wrong patch... forgot save the code and 'stg refresh'...
[PATCH 07/10] decnet: Use rcu_barrier() on module unload.
From: Jesper Dangaard Brouer <hawk@xxxxxxx>
The decnet module unloading as been disabled with a '#if 0' statement,
because it have had issues.
We add a rcu_barrier() anyhow for correctness.
The maintainer (Chrissie Caulfield) will look into the unload issue
when time permits.
Signed-off-by: Jesper Dangaard Brouer <hawk@xxxxxxx>
---
net/decnet/af_decnet.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c
index d351b8d..77d4028 100644
--- a/net/decnet/af_decnet.c
+++ b/net/decnet/af_decnet.c
@@ -2413,6 +2413,8 @@ static void __exit decnet_exit(void)
proc_net_remove(&init_net, "decnet");
proto_unregister(&dn_proto);
+
+ rcu_barrier_bh(); /* Wait for completion of call_rcu_bh()'s */
}
module_exit(decnet_exit);
#endif