Message ID | 20090623150429.22490.15113.stgit@localhost |
---|---|
State | Superseded, archived |
Delegated to: | David Miller |
Headers | show |
Jesper Dangaard Brouer wrote: > The decnet module unloading as been disabled with a '#if 0' statement, > because it have had issues. Perhaps using rcu_barrier() will fix > these issues? > > Any maintainers with input? > > Signed-off-by: Jesper Dangaard Brouer <hawk@comx.dk> > --- > > net/decnet/af_decnet.c | 6 ++++++ > 1 files changed, 6 insertions(+), 0 deletions(-) > > diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c > index d351b8d..bff12da 100644 > --- a/net/decnet/af_decnet.c > +++ b/net/decnet/af_decnet.c > @@ -2393,6 +2393,10 @@ module_init(decnet_init); > * Prevent DECnet module unloading until its fixed properly. > * Requires an audit of the code to check for memory leaks and > * initialisation problems etc. > + * > + * hawk@comx.dk 2009-06-19: > + * I have added a rcu_barrier() which should plug some of your > + * module unload issues. Maintainers please try it out... > */ > #if 0 > static void __exit decnet_exit(void) > @@ -2413,6 +2417,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 > 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.
diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c index d351b8d..bff12da 100644 --- a/net/decnet/af_decnet.c +++ b/net/decnet/af_decnet.c @@ -2393,6 +2393,10 @@ module_init(decnet_init); * Prevent DECnet module unloading until its fixed properly. * Requires an audit of the code to check for memory leaks and * initialisation problems etc. + * + * hawk@comx.dk 2009-06-19: + * I have added a rcu_barrier() which should plug some of your + * module unload issues. Maintainers please try it out... */ #if 0 static void __exit decnet_exit(void) @@ -2413,6 +2417,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
The decnet module unloading as been disabled with a '#if 0' statement, because it have had issues. Perhaps using rcu_barrier() will fix these issues? Any maintainers with input? Signed-off-by: Jesper Dangaard Brouer <hawk@comx.dk> --- net/decnet/af_decnet.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html