batman-adv: Don't manually reattach hard-interface
authorSven Eckelmann <sven@narfation.org>
Tue, 1 Jun 2021 21:52:48 +0000 (23:52 +0200)
committerSimon Wunderlich <sw@simonwunderlich.de>
Wed, 2 Jun 2021 20:25:45 +0000 (22:25 +0200)
The batadv_hardif_enable_interface is now only called from the callback
ndo_add_slave. This callback is only used by do_set_master in the rtnetlink
code which only does two things:

1. remove the net_device from its old master
2. add the net_device to its new batadv master

The code to replicate the first step in batman-adv is therefore unused
since the sysfs code was dropped.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
net/batman-adv/hard-interface.c

index 81d201c..44b0aa3 100644 (file)
@@ -678,31 +678,6 @@ batadv_hardif_deactivate_interface(struct batadv_hard_iface *hard_iface)
 }
 
 /**
- * batadv_master_del_slave() - remove hard_iface from the current master iface
- * @slave: the interface enslaved in another master
- * @master: the master from which slave has to be removed
- *
- * Invoke ndo_del_slave on master passing slave as argument. In this way the
- * slave is free'd and the master can correctly change its internal state.
- *
- * Return: 0 on success, a negative value representing the error otherwise
- */
-static int batadv_master_del_slave(struct batadv_hard_iface *slave,
-                                  struct net_device *master)
-{
-       int ret;
-
-       if (!master)
-               return 0;
-
-       ret = -EBUSY;
-       if (master->netdev_ops->ndo_del_slave)
-               ret = master->netdev_ops->ndo_del_slave(master, slave->net_dev);
-
-       return ret;
-}
-
-/**
  * batadv_hardif_enable_interface() - Enslave hard interface to soft interface
  * @hard_iface: hard interface to add to soft interface
  * @soft_iface: netdev struct of the mesh interface
@@ -713,7 +688,6 @@ int batadv_hardif_enable_interface(struct batadv_hard_iface *hard_iface,
                                   struct net_device *soft_iface)
 {
        struct batadv_priv *bat_priv;
-       struct net_device *master;
        __be16 ethertype = htons(ETH_P_BATMAN);
        int max_header_len = batadv_max_header_len();
        int ret;
@@ -732,14 +706,6 @@ int batadv_hardif_enable_interface(struct batadv_hard_iface *hard_iface,
                goto err_dev;
        }
 
-       /* check if the interface is enslaved in another virtual one and
-        * in that case unlink it first
-        */
-       master = netdev_master_upper_dev_get(hard_iface->net_dev);
-       ret = batadv_master_del_slave(hard_iface, master);
-       if (ret)
-               goto err_dev;
-
        hard_iface->soft_iface = soft_iface;
        bat_priv = netdev_priv(hard_iface->soft_iface);