Skip to content

Commit

Permalink
ipv4: fib_trie: Use tnode_get_child_rcu() and node_parent_rcu() in lo…
Browse files Browse the repository at this point in the history
…okups

While looking for other fib_trie problems reported by Pawel Staszewski
I noticed there are a few uses of tnode_get_child() and node_parent()
in lookups instead of their rcu versions.

Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Jarek Poplawski authored and David S. Miller committed Jul 20, 2009
1 parent be916cd commit b902e57
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions net/ipv4/fib_trie.c
Original file line number Diff line number Diff line change
Expand Up @@ -1465,7 +1465,7 @@ static int fn_trie_lookup(struct fib_table *tb, const struct flowi *flp,
cindex = tkey_extract_bits(mask_pfx(key, current_prefix_length),
pos, bits);

n = tnode_get_child(pn, cindex);
n = tnode_get_child_rcu(pn, cindex);

if (n == NULL) {
#ifdef CONFIG_IP_FIB_TRIE_STATS
Expand Down Expand Up @@ -1600,7 +1600,7 @@ static int fn_trie_lookup(struct fib_table *tb, const struct flowi *flp,
if (chopped_off <= pn->bits) {
cindex &= ~(1 << (chopped_off-1));
} else {
struct tnode *parent = node_parent((struct node *) pn);
struct tnode *parent = node_parent_rcu((struct node *) pn);
if (!parent)
goto failed;

Expand Down Expand Up @@ -1813,7 +1813,7 @@ static struct leaf *trie_firstleaf(struct trie *t)
static struct leaf *trie_nextleaf(struct leaf *l)
{
struct node *c = (struct node *) l;
struct tnode *p = node_parent(c);
struct tnode *p = node_parent_rcu(c);

if (!p)
return NULL; /* trie with just one leaf */
Expand Down

0 comments on commit b902e57

Please sign in to comment.