This patch allocates the rt6_stats struct dynamically when the fib6 is initialized. That provides the ability to create several instances of this structure for the network namespaces. Signed-off-by: Daniel Lezcano Signed-off-by: Benjamin Thery --- net/ipv6/ip6_fib.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) Index: linux-2.6-netns/net/ipv6/ip6_fib.c =================================================================== --- linux-2.6-netns.orig/net/ipv6/ip6_fib.c +++ linux-2.6-netns/net/ipv6/ip6_fib.c @@ -48,8 +48,7 @@ #define RT6_TRACE(x...) do { ; } while (0) #endif -static struct rt6_statistics __rt6_stats; -struct rt6_statistics *rt6_stats = &__rt6_stats; +struct rt6_statistics *rt6_stats; static struct kmem_cache * fib6_node_kmem __read_mostly; @@ -1544,6 +1543,10 @@ void __init fib6_init(void) sizeof(struct fib6_node), 0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); + + rt6_stats = kzalloc(sizeof(*rt6_stats), GFP_KERNEL); + if (!rt6_stats) + panic("IPV6: failed to allocate rt6_stats.\n"); register_pernet_subsys(&fib6_net_ops); __rtnl_register(PF_INET6, RTM_GETROUTE, NULL, inet6_dump_fib); @@ -1552,5 +1555,6 @@ void __init fib6_init(void) void fib6_gc_cleanup(void) { unregister_pernet_subsys(&fib6_net_ops); + kfree(rt6_stats); kmem_cache_destroy(fib6_node_kmem); } -- _______________________________________________ Containers mailing list Containers@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/containers