[IPV4] fib_trie: fix warning from rcu_assign_poinger
This gets rid of a warning caused by the test in rcu_assign_pointer. I tried to fix rcu_assign_pointer, but that devolved into a long set of discussions about doing it right that came to no real solution. Since the test in rcu_assign_pointer for constant NULL would never succeed in fib_trie, just open code instead. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
69d1506731
commit
6440cc9e0f
|
@ -177,10 +177,13 @@ static inline struct tnode *node_parent_rcu(struct node *node)
|
||||||
return rcu_dereference(ret);
|
return rcu_dereference(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Same as rcu_assign_pointer
|
||||||
|
* but that macro() assumes that value is a pointer.
|
||||||
|
*/
|
||||||
static inline void node_set_parent(struct node *node, struct tnode *ptr)
|
static inline void node_set_parent(struct node *node, struct tnode *ptr)
|
||||||
{
|
{
|
||||||
rcu_assign_pointer(node->parent,
|
smp_wmb();
|
||||||
(unsigned long)ptr | NODE_TYPE(node));
|
node->parent = (unsigned long)ptr | NODE_TYPE(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline struct node *tnode_get_child(struct tnode *tn, unsigned int i)
|
static inline struct node *tnode_get_child(struct tnode *tn, unsigned int i)
|
||||||
|
|
Loading…
Reference in a new issue