Missing patches in net-next

Message ID 4759436.052WzdkNzK@sven-edge
State RFC, archived

Commit Message

Sven Eckelmann Oct. 31, 2015, 12:03 p.m. UTC

there are some patches waiting in batman-adv's next branch which are currently 
missing in davem's net-next. The diff from the daily build_test is stable 
since 1 1/2 months [1]:

     net/batman-adv/bridge_loop_avoidance.c |   35 +++---------------------
     net/batman-adv/routing.c               |   19 ++-----------
     net/batman-adv/translation-table.c     |   24 ++--------------
     net/batman-adv/types.h                 |    2 -
     4 files changed, 12 insertions(+), 68 deletions(-)

The patches which are currently missing in net-next are:


All of them are from maint and thus have conflicts with patches that are 
already in net-next. The rebased/squashed patches can be found in the 

Kind regards,

[1] https://lists.open-mesh.org/pipermail/linux-merge/2015-September/002582.html


From 7e7cbace13b8ea095ca9a40a51f0d2c2912592fe Mon Sep 17 00:00:00 2001
From: Simon Wunderlich <sw@simonwunderlich.de>
Date: Wed, 2 Sep 2015 20:09:55 +0200
Subject: [PATCH 4/4] batman-adv: avoid keeping false temporary entry

In the case when a temporary entry is added first and a proper tt entry
is added after that, the temporary tt entry is kept in the orig list.
However the temporary flag is removed at this point, and therefore the
purge function can not find this temporary entry anymore.

Therefore, remove the previous temp entry before adding the new proper

This case can happen if a client behind a given originator moves before
the TT announcement is sent out. Other than that, this case can also be
created by bogus or malicious payload frames for VLANs which are not
existent on the sending originator.

Reported-by: Alessandro Bolletta <alessandro@mediaspot.net>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Acked-by: Antonio Quartulli <antonio@meshcoding.com>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
 net/batman-adv/translation-table.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 17822de..dc422be 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -1427,9 +1427,15 @@  static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
 		/* if the client was temporary added before receiving the first
-		 * OGM announcing it, we have to clear the TEMP flag
+		 * OGM announcing it, we have to clear the TEMP flag. Also,
+		 * remove the previous temporary orig node and re-add it
+		 * if required. If the orig entry changed, the new one which
+		 * is a non-temporary entry is preferred.
-		common->flags &= ~BATADV_TT_CLIENT_TEMP;
+		if (common->flags & BATADV_TT_CLIENT_TEMP) {
+			batadv_tt_global_del_orig_list(tt_global_entry);
+			common->flags &= ~BATADV_TT_CLIENT_TEMP;
+		}
 		/* the change can carry possible "attribute" flags like the
 		 * TT_CLIENT_WIFI, therefore they have to be copied in the