Loading net/batman-adv/originator.c +1 −0 Original line number Original line Diff line number Diff line Loading @@ -102,6 +102,7 @@ struct neigh_node *create_neighbor(struct orig_node *orig_node, INIT_HLIST_NODE(&neigh_node->list); INIT_HLIST_NODE(&neigh_node->list); INIT_LIST_HEAD(&neigh_node->bonding_list); INIT_LIST_HEAD(&neigh_node->bonding_list); spin_lock_init(&neigh_node->tq_lock); memcpy(neigh_node->addr, neigh, ETH_ALEN); memcpy(neigh_node->addr, neigh, ETH_ALEN); neigh_node->orig_node = orig_neigh_node; neigh_node->orig_node = orig_neigh_node; Loading net/batman-adv/routing.c +4 −0 Original line number Original line Diff line number Diff line Loading @@ -415,10 +415,12 @@ static void update_orig(struct bat_priv *bat_priv, if (is_duplicate) if (is_duplicate) continue; continue; spin_lock_bh(&tmp_neigh_node->tq_lock); ring_buffer_set(tmp_neigh_node->tq_recv, ring_buffer_set(tmp_neigh_node->tq_recv, &tmp_neigh_node->tq_index, 0); &tmp_neigh_node->tq_index, 0); tmp_neigh_node->tq_avg = tmp_neigh_node->tq_avg = ring_buffer_avg(tmp_neigh_node->tq_recv); ring_buffer_avg(tmp_neigh_node->tq_recv); spin_unlock_bh(&tmp_neigh_node->tq_lock); } } if (!neigh_node) { if (!neigh_node) { Loading @@ -443,10 +445,12 @@ static void update_orig(struct bat_priv *bat_priv, orig_node->flags = batman_packet->flags; orig_node->flags = batman_packet->flags; neigh_node->last_valid = jiffies; neigh_node->last_valid = jiffies; spin_lock_bh(&neigh_node->tq_lock); ring_buffer_set(neigh_node->tq_recv, ring_buffer_set(neigh_node->tq_recv, &neigh_node->tq_index, &neigh_node->tq_index, batman_packet->tq); batman_packet->tq); neigh_node->tq_avg = ring_buffer_avg(neigh_node->tq_recv); neigh_node->tq_avg = ring_buffer_avg(neigh_node->tq_recv); spin_unlock_bh(&neigh_node->tq_lock); if (!is_duplicate) { if (!is_duplicate) { orig_node->last_ttl = batman_packet->ttl; orig_node->last_ttl = batman_packet->ttl; Loading net/batman-adv/types.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -125,6 +125,7 @@ struct neigh_node { struct rcu_head rcu; struct rcu_head rcu; struct orig_node *orig_node; struct orig_node *orig_node; struct hard_iface *if_incoming; struct hard_iface *if_incoming; spinlock_t tq_lock; /* protects: tq_recv, tq_index */ }; }; Loading Loading
net/batman-adv/originator.c +1 −0 Original line number Original line Diff line number Diff line Loading @@ -102,6 +102,7 @@ struct neigh_node *create_neighbor(struct orig_node *orig_node, INIT_HLIST_NODE(&neigh_node->list); INIT_HLIST_NODE(&neigh_node->list); INIT_LIST_HEAD(&neigh_node->bonding_list); INIT_LIST_HEAD(&neigh_node->bonding_list); spin_lock_init(&neigh_node->tq_lock); memcpy(neigh_node->addr, neigh, ETH_ALEN); memcpy(neigh_node->addr, neigh, ETH_ALEN); neigh_node->orig_node = orig_neigh_node; neigh_node->orig_node = orig_neigh_node; Loading
net/batman-adv/routing.c +4 −0 Original line number Original line Diff line number Diff line Loading @@ -415,10 +415,12 @@ static void update_orig(struct bat_priv *bat_priv, if (is_duplicate) if (is_duplicate) continue; continue; spin_lock_bh(&tmp_neigh_node->tq_lock); ring_buffer_set(tmp_neigh_node->tq_recv, ring_buffer_set(tmp_neigh_node->tq_recv, &tmp_neigh_node->tq_index, 0); &tmp_neigh_node->tq_index, 0); tmp_neigh_node->tq_avg = tmp_neigh_node->tq_avg = ring_buffer_avg(tmp_neigh_node->tq_recv); ring_buffer_avg(tmp_neigh_node->tq_recv); spin_unlock_bh(&tmp_neigh_node->tq_lock); } } if (!neigh_node) { if (!neigh_node) { Loading @@ -443,10 +445,12 @@ static void update_orig(struct bat_priv *bat_priv, orig_node->flags = batman_packet->flags; orig_node->flags = batman_packet->flags; neigh_node->last_valid = jiffies; neigh_node->last_valid = jiffies; spin_lock_bh(&neigh_node->tq_lock); ring_buffer_set(neigh_node->tq_recv, ring_buffer_set(neigh_node->tq_recv, &neigh_node->tq_index, &neigh_node->tq_index, batman_packet->tq); batman_packet->tq); neigh_node->tq_avg = ring_buffer_avg(neigh_node->tq_recv); neigh_node->tq_avg = ring_buffer_avg(neigh_node->tq_recv); spin_unlock_bh(&neigh_node->tq_lock); if (!is_duplicate) { if (!is_duplicate) { orig_node->last_ttl = batman_packet->ttl; orig_node->last_ttl = batman_packet->ttl; Loading
net/batman-adv/types.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -125,6 +125,7 @@ struct neigh_node { struct rcu_head rcu; struct rcu_head rcu; struct orig_node *orig_node; struct orig_node *orig_node; struct hard_iface *if_incoming; struct hard_iface *if_incoming; spinlock_t tq_lock; /* protects: tq_recv, tq_index */ }; }; Loading