[linux-next] LinuxNextTracking branch, master, updated. next-20160429

batman at open-mesh.org batman at open-mesh.org
Sat Apr 30 00:15:56 CEST 2016


The following commit has been merged in the master branch:
commit f2d23861b818d08bcd15cc1612ae94aa33b3931c
Author: Sven Eckelmann <sven at narfation.org>
Date:   Sat Mar 19 13:55:21 2016 +0100

    batman-adv: Deactivate TO_BE_ACTIVATED hardif on shutdown
    
    The shutdown of an batman-adv interface can happen with one of its slave
    interfaces still being in the BATADV_IF_TO_BE_ACTIVATED state. A possible
    reason for it is that the routing algorithm BATMAN_V was selected and
    batadv_schedule_bat_ogm was not yet called for this interface. This slave
    interface still has to be set to BATADV_IF_INACTIVE or the batman-adv
    interface will never reduce its usage counter and thus never gets shutdown.
    
    This problem can be simulated via:
    
        $ modprobe dummy
        $ modprobe batman-adv routing_algo=BATMAN_V
        $ ip link add bat0 type batadv
        $ ip link set dummy0 master bat0
        $ ip link set dummy0 up
        $ ip link del bat0
        unregister_netdevice: waiting for bat0 to become free. Usage count = 3
    
    Reported-by: Matthias Schiffer <mschiffer at universe-factory.net>
    Signed-off-by: Sven Eckelmann <sven at narfation.org>
    Signed-off-by: Marek Lindner <mareklindner at neomailbox.ch>
    Signed-off-by: Antonio Quartulli <a at unstable.cc>

diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
index b22b277..c61d5b0 100644
--- a/net/batman-adv/hard-interface.c
+++ b/net/batman-adv/hard-interface.c
@@ -572,8 +572,7 @@ void batadv_hardif_disable_interface(struct batadv_hard_iface *hard_iface,
 	struct batadv_priv *bat_priv = netdev_priv(hard_iface->soft_iface);
 	struct batadv_hard_iface *primary_if = NULL;
 
-	if (hard_iface->if_status == BATADV_IF_ACTIVE)
-		batadv_hardif_deactivate_interface(hard_iface);
+	batadv_hardif_deactivate_interface(hard_iface);
 
 	if (hard_iface->if_status != BATADV_IF_INACTIVE)
 		goto out;

-- 
LinuxNextTracking


More information about the linux-merge mailing list