Commit 375216ad authored by Thomas Graf's avatar Thomas Graf Committed by David S. Miller

[IPv6] fib: initialize tb6_lock in common place to give lockdep a key

Signed-off-by: default avatarThomas Graf <tgraf@suug.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 69c30147
...@@ -169,7 +169,6 @@ static __inline__ void rt6_release(struct rt6_info *rt) ...@@ -169,7 +169,6 @@ static __inline__ void rt6_release(struct rt6_info *rt)
static struct fib6_table fib6_main_tbl = { static struct fib6_table fib6_main_tbl = {
.tb6_id = RT6_TABLE_MAIN, .tb6_id = RT6_TABLE_MAIN,
.tb6_lock = RW_LOCK_UNLOCKED,
.tb6_root = { .tb6_root = {
.leaf = &ip6_null_entry, .leaf = &ip6_null_entry,
.fn_flags = RTN_ROOT | RTN_TL_ROOT | RTN_RTINFO, .fn_flags = RTN_ROOT | RTN_TL_ROOT | RTN_RTINFO,
...@@ -187,6 +186,12 @@ static void fib6_link_table(struct fib6_table *tb) ...@@ -187,6 +186,12 @@ static void fib6_link_table(struct fib6_table *tb)
{ {
unsigned int h; unsigned int h;
/*
* Initialize table lock at a single place to give lockdep a key,
* tables aren't visible prior to being linked to the list.
*/
rwlock_init(&tb->tb6_lock);
h = tb->tb6_id & (FIB_TABLE_HASHSZ - 1); h = tb->tb6_id & (FIB_TABLE_HASHSZ - 1);
/* /*
...@@ -199,7 +204,6 @@ static void fib6_link_table(struct fib6_table *tb) ...@@ -199,7 +204,6 @@ static void fib6_link_table(struct fib6_table *tb)
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #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_id = RT6_TABLE_LOCAL,
.tb6_lock = RW_LOCK_UNLOCKED,
.tb6_root = { .tb6_root = {
.leaf = &ip6_null_entry, .leaf = &ip6_null_entry,
.fn_flags = RTN_ROOT | RTN_TL_ROOT | RTN_RTINFO, .fn_flags = RTN_ROOT | RTN_TL_ROOT | RTN_RTINFO,
...@@ -213,7 +217,6 @@ static struct fib6_table *fib6_alloc_table(u32 id) ...@@ -213,7 +217,6 @@ static struct fib6_table *fib6_alloc_table(u32 id)
table = kzalloc(sizeof(*table), GFP_ATOMIC); table = kzalloc(sizeof(*table), GFP_ATOMIC);
if (table != NULL) { if (table != NULL) {
table->tb6_id = id; table->tb6_id = id;
table->tb6_lock = RW_LOCK_UNLOCKED;
table->tb6_root.leaf = &ip6_null_entry; table->tb6_root.leaf = &ip6_null_entry;
table->tb6_root.fn_flags = RTN_ROOT | RTN_TL_ROOT | RTN_RTINFO; table->tb6_root.fn_flags = RTN_ROOT | RTN_TL_ROOT | RTN_RTINFO;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment