On Fri, 2008-02-29 at 11:23 -0800, David Miller wrote: > From: "Denis V. Lunev" <den@xxxxxxxxxx> > Date: Fri, 29 Feb 2008 16:40:58 +0300 > > > +static void __net_exit icmpv6_sk_exit(struct net *net) > > +{ > > Since you call this from __new_init code, won't this > create a section conflict when ipv6 is built statically > into the kernel? Dave, you are perfectly correct :) Though, I have made a similar mistake in the IPv4 code. Pls consider the patch attached.
[ICMP]: Section conflict between icmp_sk_init/icmp_sk_exit. Functions from __exit section should not be called from ones in __init section. Fix this conflict. Signed-off-by: Denis V. Lunev <den@xxxxxxxxxx> --- diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c index b51f4b0..cee77d6 100644 --- a/net/ipv4/icmp.c +++ b/net/ipv4/icmp.c @@ -1198,7 +1198,9 @@ int __net_init icmp_sk_init(struct net *net) return 0; fail: - icmp_sk_exit(net); + for_each_possible_cpu(i) + sk_release_kernel(net->ipv4.icmp_sk[i]); + kfree(net->ipv4.icmp_sk); return err; }
_______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers