From: Nora Schiffer <[email protected]>

The only use of the label was too early for primary_if to be set
anyways.

Also move the put of primary_if further up to hold the reference only as
long as necessary, hopefully avoiding the need to re-introduce the goto
label with future code changes.

Signed-off-by: Nora Schiffer <[email protected]>
Signed-off-by: Sven Eckelmann <[email protected]>
Signed-off-by: Simon Wunderlich <[email protected]>
---
 net/batman-adv/hard-interface.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
index 9b8108d464dbc..6fc49ad47fd87 100644
--- a/net/batman-adv/hard-interface.c
+++ b/net/batman-adv/hard-interface.c
@@ -835,14 +835,14 @@ int batadv_hardif_enable_interface(struct net_device 
*net_dev,
 void batadv_hardif_disable_interface(struct batadv_hard_iface *hard_iface)
 {
        struct batadv_priv *bat_priv = netdev_priv(hard_iface->mesh_iface);
-       struct batadv_hard_iface *primary_if = NULL;
+       struct batadv_hard_iface *primary_if;
 
        ASSERT_RTNL();
 
        batadv_hardif_deactivate_interface(hard_iface);
 
        if (hard_iface->if_status != BATADV_IF_INACTIVE)
-               goto out;
+               return;
 
        batadv_info(hard_iface->mesh_iface, "Removing interface: %s\n",
                    hard_iface->net_dev->name);
@@ -857,6 +857,7 @@ void batadv_hardif_disable_interface(struct 
batadv_hard_iface *hard_iface)
 
                batadv_hardif_put(new_if);
        }
+       batadv_hardif_put(primary_if);
 
        bat_priv->algo_ops->iface.disable(hard_iface);
        hard_iface->if_status = BATADV_IF_TO_BE_REMOVED;
@@ -874,9 +875,6 @@ void batadv_hardif_disable_interface(struct 
batadv_hard_iface *hard_iface)
                batadv_gw_check_client_stop(bat_priv);
 
        batadv_hardif_put(hard_iface);
-
-out:
-       batadv_hardif_put(primary_if);
 }
 
 /**
-- 
2.47.3

Reply via email to