[linux-next] LinuxNextTracking branch, master, updated. next-20110929

batman at open-mesh.org batman at open-mesh.org
Thu Sep 29 13:49:50 CEST 2011


The following commit has been merged in the master branch:
commit 8b267b312df9343fea3bd679c509b36214b5a854
Author: Antonio Quartulli <ordex at autistici.org>
Date:   Wed Sep 21 16:06:42 2011 +0200

    batman-adv: do_bcast has to be true for broadcast packets only
    
    corrects a critical bug of the GW feature. This bug made all the unicast
    packets destined to a GW to be sent as broadcast. This bug is present even if
    the sender GW feature is configured as OFF. It's an urgent bug fix and should
    be committed as soon as possible.
    
    This was a regression introduced by 43676ab590c3f8686fd047d34c3e33803eef71f0
    
    Signed-off-by: Antonio Quartulli <ordex at autistici.org>
    Signed-off-by: Marek Lindner <lindner_marek at yahoo.de>

diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index 3e2f91f..05dd351 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -565,7 +565,7 @@ static int interface_tx(struct sk_buff *skb, struct net_device *soft_iface)
 	struct orig_node *orig_node = NULL;
 	int data_len = skb->len, ret;
 	short vid = -1;
-	bool do_bcast = false;
+	bool do_bcast;
 
 	if (atomic_read(&bat_priv->mesh_state) != MESH_ACTIVE)
 		goto dropped;
@@ -598,15 +598,15 @@ static int interface_tx(struct sk_buff *skb, struct net_device *soft_iface)
 	tt_local_add(soft_iface, ethhdr->h_source);
 
 	orig_node = transtable_search(bat_priv, ethhdr->h_dest);
-	if (is_multicast_ether_addr(ethhdr->h_dest) ||
-				(orig_node && orig_node->gw_flags)) {
+	do_bcast = is_multicast_ether_addr(ethhdr->h_dest);
+	if (do_bcast ||	(orig_node && orig_node->gw_flags)) {
 		ret = gw_is_target(bat_priv, skb, orig_node);
 
 		if (ret < 0)
 			goto dropped;
 
-		if (ret == 0)
-			do_bcast = true;
+		if (ret)
+			do_bcast = false;
 	}
 
 	/* ethernet packet should be broadcasted */

-- 
LinuxNextTracking


More information about the linux-merge mailing list