diff options
Diffstat (limited to 'net/batman-adv/soft-interface.c')
-rw-r--r-- | net/batman-adv/soft-interface.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c index 343d2c904399..287a3879ed7e 100644 --- a/net/batman-adv/soft-interface.c +++ b/net/batman-adv/soft-interface.c | |||
@@ -1033,7 +1033,9 @@ void batadv_softif_destroy_sysfs(struct net_device *soft_iface) | |||
1033 | static void batadv_softif_destroy_netlink(struct net_device *soft_iface, | 1033 | static void batadv_softif_destroy_netlink(struct net_device *soft_iface, |
1034 | struct list_head *head) | 1034 | struct list_head *head) |
1035 | { | 1035 | { |
1036 | struct batadv_priv *bat_priv = netdev_priv(soft_iface); | ||
1036 | struct batadv_hard_iface *hard_iface; | 1037 | struct batadv_hard_iface *hard_iface; |
1038 | struct batadv_softif_vlan *vlan; | ||
1037 | 1039 | ||
1038 | list_for_each_entry(hard_iface, &batadv_hardif_list, list) { | 1040 | list_for_each_entry(hard_iface, &batadv_hardif_list, list) { |
1039 | if (hard_iface->soft_iface == soft_iface) | 1041 | if (hard_iface->soft_iface == soft_iface) |
@@ -1041,6 +1043,13 @@ static void batadv_softif_destroy_netlink(struct net_device *soft_iface, | |||
1041 | BATADV_IF_CLEANUP_KEEP); | 1043 | BATADV_IF_CLEANUP_KEEP); |
1042 | } | 1044 | } |
1043 | 1045 | ||
1046 | /* destroy the "untagged" VLAN */ | ||
1047 | vlan = batadv_softif_vlan_get(bat_priv, BATADV_NO_FLAGS); | ||
1048 | if (vlan) { | ||
1049 | batadv_softif_destroy_vlan(bat_priv, vlan); | ||
1050 | batadv_softif_vlan_put(vlan); | ||
1051 | } | ||
1052 | |||
1044 | batadv_sysfs_del_meshif(soft_iface); | 1053 | batadv_sysfs_del_meshif(soft_iface); |
1045 | unregister_netdevice_queue(soft_iface, head); | 1054 | unregister_netdevice_queue(soft_iface, head); |
1046 | } | 1055 | } |