batman-adv: select an internet gateway if none was chosen

Message ID 1343048353-23456-1-git-send-email-lindner_marek@yahoo.de (mailing list archive)
State Accepted, archived
Commit 8c379dc6552f57a56f9d1d02e8b45e167933a55c
Headers

Commit Message

Marek Lindner July 23, 2012, 12:59 p.m. UTC
  This is a regression introduced by: 6a17ecc4603be7f065c38b288d038a0082bbf21d

Reported-by: Nicolás Echániz <nicoechaniz@codigosur.org>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---

This patch is intended for next and needs to be backported for stable.

 gateway_client.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
  

Comments

Antonio Quartulli July 23, 2012, 5:33 p.m. UTC | #1
On Mon, Jul 23, 2012 at 02:59:13PM +0200, Marek Lindner wrote:
> This is a regression introduced by: 6a17ecc4603be7f065c38b288d038a0082bbf21d
> 
> Reported-by: Nicolás Echániz <nicoechaniz@codigosur.org>
> Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
> ---


Thank you Marek for fixing bugs that I silently introduce :)

Acked-by: Antonio Quartulli <ordex@autistici.org>
  
Marek Lindner July 26, 2012, 12:45 p.m. UTC | #2
On Monday, July 23, 2012 19:33:56 Antonio Quartulli wrote:
> On Mon, Jul 23, 2012 at 02:59:13PM +0200, Marek Lindner wrote:
> > This is a regression introduced by:
> > 6a17ecc4603be7f065c38b288d038a0082bbf21d
> >
> > 
> >
> > Reported-by: Nicolás Echániz <nicoechaniz@codigosur.org>
> > Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
> > ---
> 
> Thank you Marek for fixing bugs that I silently introduce :)
> 
> Acked-by: Antonio Quartulli <ordex@autistici.org>

Applied in revision 8c379dc.

Regards,
Marek
  

Patch

diff --git a/gateway_client.c b/gateway_client.c
index b421cc4..fc866f2 100644
--- a/gateway_client.c
+++ b/gateway_client.c
@@ -200,11 +200,11 @@  void batadv_gw_election(struct batadv_priv *bat_priv)
 	if (atomic_read(&bat_priv->gw_mode) != BATADV_GW_MODE_CLIENT)
 		goto out;
 
-	if (!batadv_atomic_dec_not_zero(&bat_priv->gw_reselect))
-		goto out;
-
 	curr_gw = batadv_gw_get_selected_gw_node(bat_priv);
 
+	if (!batadv_atomic_dec_not_zero(&bat_priv->gw_reselect) && curr_gw)
+		goto out;
+
 	next_gw = batadv_gw_get_best_gw_node(bat_priv);
 
 	if (curr_gw == next_gw)