The following commit has been merged in the master branch:
commit 3c56ec9576d5b25beb9870cf8cf7ee7a50ea94c9
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Wed May 4 21:14:58 2011 +0200
batman-adv: Fix rcu_lock imbalance in softif_neigh_get
Fix extra rcu_read_unlock after an failed softif_neigh_vid_get in
softif_neigh_get introduced by 0281a6aab718965d7c0ef45c4ba22e305f6aefe7
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
diff --git a/soft-interface.c b/soft-interface.c
index 1827734..8023c4e 100644
--- a/soft-interface.c
+++ b/soft-interface.c
@@ -175,12 +175,12 @@ static struct softif_neigh *softif_neigh_get(struct bat_priv
*bat_priv,
continue;
softif_neigh->last_seen = jiffies;
- goto out;
+ goto unlock;
}
softif_neigh = kzalloc(sizeof(struct softif_neigh), GFP_ATOMIC);
if (!softif_neigh)
- goto out;
+ goto unlock;
memcpy(softif_neigh->addr, addr, ETH_ALEN);
softif_neigh->last_seen = jiffies;
@@ -193,8 +193,9 @@ static struct softif_neigh *softif_neigh_get(struct bat_priv
*bat_priv,
&softif_neigh_vid->softif_neigh_list);
spin_unlock_bh(&bat_priv->softif_neigh_lock);
-out:
+unlock:
rcu_read_unlock();
+out:
if (softif_neigh_vid)
softif_neigh_vid_free_ref(softif_neigh_vid);
return softif_neigh;
--
batman-adv
Show replies by date