diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/fib_trie.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c index 5741d1306cc5..d58b49115386 100644 --- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c | |||
@@ -1465,7 +1465,7 @@ static int fn_trie_lookup(struct fib_table *tb, const struct flowi *flp, | |||
1465 | cindex = tkey_extract_bits(mask_pfx(key, current_prefix_length), | 1465 | cindex = tkey_extract_bits(mask_pfx(key, current_prefix_length), |
1466 | pos, bits); | 1466 | pos, bits); |
1467 | 1467 | ||
1468 | n = tnode_get_child(pn, cindex); | 1468 | n = tnode_get_child_rcu(pn, cindex); |
1469 | 1469 | ||
1470 | if (n == NULL) { | 1470 | if (n == NULL) { |
1471 | #ifdef CONFIG_IP_FIB_TRIE_STATS | 1471 | #ifdef CONFIG_IP_FIB_TRIE_STATS |
@@ -1600,7 +1600,7 @@ backtrace: | |||
1600 | if (chopped_off <= pn->bits) { | 1600 | if (chopped_off <= pn->bits) { |
1601 | cindex &= ~(1 << (chopped_off-1)); | 1601 | cindex &= ~(1 << (chopped_off-1)); |
1602 | } else { | 1602 | } else { |
1603 | struct tnode *parent = node_parent((struct node *) pn); | 1603 | struct tnode *parent = node_parent_rcu((struct node *) pn); |
1604 | if (!parent) | 1604 | if (!parent) |
1605 | goto failed; | 1605 | goto failed; |
1606 | 1606 | ||
@@ -1813,7 +1813,7 @@ static struct leaf *trie_firstleaf(struct trie *t) | |||
1813 | static struct leaf *trie_nextleaf(struct leaf *l) | 1813 | static struct leaf *trie_nextleaf(struct leaf *l) |
1814 | { | 1814 | { |
1815 | struct node *c = (struct node *) l; | 1815 | struct node *c = (struct node *) l; |
1816 | struct tnode *p = node_parent(c); | 1816 | struct tnode *p = node_parent_rcu(c); |
1817 | 1817 | ||
1818 | if (!p) | 1818 | if (!p) |
1819 | return NULL; /* trie with just one leaf */ | 1819 | return NULL; /* trie with just one leaf */ |