batman-adv: use rcu_replace_pointer() where appropriate
[linux-2.6-microblaze.git] / net / batman-adv / routing.c
index 3632bd9..d343382 100644 (file)
@@ -71,13 +71,13 @@ static void _batadv_update_route(struct batadv_priv *bat_priv,
         * the code needs to ensure the curr_router variable contains a pointer
         * to the replaced best neighbor.
         */
-       curr_router = rcu_dereference_protected(orig_ifinfo->router, true);
 
        /* increase refcount of new best neighbor */
        if (neigh_node)
                kref_get(&neigh_node->refcount);
 
-       rcu_assign_pointer(orig_ifinfo->router, neigh_node);
+       curr_router = rcu_replace_pointer(orig_ifinfo->router, neigh_node,
+                                         true);
        spin_unlock_bh(&orig_node->neigh_list_lock);
        batadv_orig_ifinfo_put(orig_ifinfo);