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 <dlezcano@fr.ibm.com>
Signed-off-by: Benjamin Thery <benjamin.thery@bull.net>
---
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