From 7e8158b341b2b043047b6f570c343fd9b0efd9c9 Mon Sep 17 00:00:00 2001 From: Sven Eckelmann Date: Sat, 18 Sep 2010 21:01:21 +0200 Subject: [PATCH] Staging: batman-adv: Track references of batman_if in set_primary_if set_primary_if exchanges the current primary interfaces with a new one. This is a new reference and thus we have to count it and decrease the count of the old primary interface. Signed-off-by: Sven Eckelmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/batman-adv/hard-interface.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/staging/batman-adv/hard-interface.c b/drivers/staging/batman-adv/hard-interface.c index eef56318006b..a9d6f1d3a6b4 100644 --- a/drivers/staging/batman-adv/hard-interface.c +++ b/drivers/staging/batman-adv/hard-interface.c @@ -111,9 +111,17 @@ static void set_primary_if(struct bat_priv *bat_priv, { struct batman_packet *batman_packet; struct vis_packet *vis_packet; + struct batman_if *old_if; + if (batman_if) + hardif_hold(batman_if); + + old_if = bat_priv->primary_if; bat_priv->primary_if = batman_if; + if (old_if) + hardif_put(old_if); + if (!bat_priv->primary_if) return; -- 2.39.5