diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c index e9cb2588e4161c41613c0e50a17ea91b7416a514..18bcaf2ff2fd54627894f6ac28ebc07833739585 100644 --- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c @@ -1143,8 +1143,9 @@ static struct list_head *fib_insert_node(struct trie *t, u32 key, int plen) put_child(tp, cindex, (struct rt_trie_node *)tn); } else { rcu_assign_pointer(t->trie, (struct rt_trie_node *)tn); - tp = tn; } + + tp = tn; } if (tp && tp->pos + tp->bits > 32)