The following commit has been merged in the next branch: commit 6cc8dda7aed300977172e9369a6f27e06fd25bc5 Author: Marek Lindner lindner_marek@yahoo.de Date: Sat Mar 17 15:28:32 2012 +0800
batman-adv: prepare lq_update_lock to be shared among different protocols
Signed-off-by: Marek Lindner lindner_marek@yahoo.de
diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c index 85617c4..fa41307 100644 --- a/bat_iv_ogm.c +++ b/bat_iv_ogm.c @@ -43,7 +43,6 @@ static struct neigh_node *bat_iv_ogm_neigh_new(struct hard_iface *hard_iface, goto out;
INIT_LIST_HEAD(&neigh_node->bonding_list); - spin_lock_init(&neigh_node->tq_lock);
neigh_node->orig_node = orig_neigh; neigh_node->if_incoming = hard_iface; @@ -638,12 +637,12 @@ static void bat_iv_ogm_orig_update(struct bat_priv *bat_priv, if (is_duplicate) continue;
- spin_lock_bh(&tmp_neigh_node->tq_lock); + spin_lock_bh(&tmp_neigh_node->lq_update_lock); ring_buffer_set(tmp_neigh_node->tq_recv, &tmp_neigh_node->tq_index, 0); tmp_neigh_node->tq_avg = ring_buffer_avg(tmp_neigh_node->tq_recv); - spin_unlock_bh(&tmp_neigh_node->tq_lock); + spin_unlock_bh(&tmp_neigh_node->lq_update_lock); }
if (!neigh_node) { @@ -669,12 +668,12 @@ static void bat_iv_ogm_orig_update(struct bat_priv *bat_priv, orig_node->flags = batman_ogm_packet->flags; neigh_node->last_seen = jiffies;
- spin_lock_bh(&neigh_node->tq_lock); + spin_lock_bh(&neigh_node->lq_update_lock); ring_buffer_set(neigh_node->tq_recv, &neigh_node->tq_index, batman_ogm_packet->tq); neigh_node->tq_avg = ring_buffer_avg(neigh_node->tq_recv); - spin_unlock_bh(&neigh_node->tq_lock); + spin_unlock_bh(&neigh_node->lq_update_lock);
if (!is_duplicate) { orig_node->last_ttl = batman_ogm_packet->header.ttl; diff --git a/originator.c b/originator.c index 4432d64..30889c9 100644 --- a/originator.c +++ b/originator.c @@ -99,6 +99,7 @@ struct neigh_node *neigh_node_new(struct hard_iface *hard_iface, INIT_HLIST_NODE(&neigh_node->list);
memcpy(neigh_node->addr, neigh_addr, ETH_ALEN); + spin_lock_init(&neigh_node->lq_update_lock);
/* extra reference for return */ atomic_set(&neigh_node->refcount, 2); diff --git a/types.h b/types.h index 04d6cf5..15f538a 100644 --- a/types.h +++ b/types.h @@ -151,7 +151,7 @@ struct neigh_node { struct rcu_head rcu; struct orig_node *orig_node; struct hard_iface *if_incoming; - spinlock_t tq_lock; /* protects: tq_recv, tq_index */ + spinlock_t lq_update_lock; /* protects: tq_recv, tq_index */ };
#ifdef CONFIG_BATMAN_ADV_BLA