This patch changes all references to the static global variables fib6_main_tbl and fib6_local_tbl by a pointer. That provides the minimal changes to dynamically allocate these tables for the network namespaces. Signed-off-by: Daniel Lezcano Signed-off-by: Benjamin Thery --- net/ipv6/ip6_fib.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 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 @@ -166,7 +166,7 @@ static __inline__ void rt6_release(struc dst_free(&rt->u.dst); } -static struct fib6_table fib6_main_tbl = { +static struct fib6_table __fib6_main_tbl = { .tb6_id = RT6_TABLE_MAIN, .tb6_root = { .leaf = &ip6_null_entry, @@ -174,6 +174,8 @@ static struct fib6_table fib6_main_tbl = }, }; +static struct fib6_table *fib6_main_tbl = &__fib6_main_tbl; + #ifdef CONFIG_IPV6_MULTIPLE_TABLES #define FIB_TABLE_HASHSZ 256 #else @@ -201,7 +203,7 @@ static void fib6_link_table(struct fib6_ } #ifdef CONFIG_IPV6_MULTIPLE_TABLES -static struct fib6_table fib6_local_tbl = { +static struct fib6_table __fib6_local_tbl = { .tb6_id = RT6_TABLE_LOCAL, .tb6_root = { .leaf = &ip6_null_entry, @@ -209,6 +211,8 @@ static struct fib6_table fib6_local_tbl }, }; +static struct fib6_table *fib6_local_tbl = &__fib6_local_tbl; + static struct fib6_table *fib6_alloc_table(u32 id) { struct fib6_table *table; @@ -263,8 +267,8 @@ struct fib6_table *fib6_get_table(u32 id static void __init fib6_tables_init(void) { - fib6_link_table(&fib6_main_tbl); - fib6_link_table(&fib6_local_tbl); + fib6_link_table(fib6_main_tbl); + fib6_link_table(fib6_local_tbl); } #else @@ -276,18 +280,18 @@ struct fib6_table *fib6_new_table(u32 id struct fib6_table *fib6_get_table(u32 id) { - return &fib6_main_tbl; + return fib6_main_tbl; } struct dst_entry *fib6_rule_lookup(struct flowi *fl, int flags, pol_lookup_t lookup) { - return (struct dst_entry *) lookup(&fib6_main_tbl, fl, flags); + return (struct dst_entry *) lookup(fib6_main_tbl, fl, flags); } static void __init fib6_tables_init(void) { - fib6_link_table(&fib6_main_tbl); + fib6_link_table(fib6_main_tbl); } #endif -- _______________________________________________ Containers mailing list Containers@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/containers