The following commit has been merged in the master branch: commit 329887ad13a3f3d26837ea9fce5a8305a7c983e2 Author: Simon Wunderlich email@example.com Date: Wed Aug 13 14:26:56 2014 +0200
batman-adv: fix and simplify condition when bonding should be used
The current condition actually does NOT consider bonding when the interface the packet came in from is the soft interface, which is the opposite of what it should do (and the comment describes). Fix that and slightly simplify the condition.
Reported-by: Ray Gibson firstname.lastname@example.org Signed-off-by: Simon Wunderlich email@example.com Signed-off-by: Marek Lindner firstname.lastname@example.org Signed-off-by: Antonio Quartulli email@example.com
diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c index 35f76f2..6648f32 100644 --- a/net/batman-adv/routing.c +++ b/net/batman-adv/routing.c @@ -443,11 +443,13 @@ batadv_find_router(struct batadv_priv *bat_priv,
router = batadv_orig_router_get(orig_node, recv_if);
+ if (!router) + return router; + /* only consider bonding for recv_if == BATADV_IF_DEFAULT (first hop) * and if activated. */ - if (recv_if == BATADV_IF_DEFAULT || !atomic_read(&bat_priv->bonding) || - !router) + if (!(recv_if == BATADV_IF_DEFAULT && atomic_read(&bat_priv->bonding))) return router;
/* bonding: loop through the list of possible routers found