|
@@ -709,7 +709,8 @@ static int batadv_hard_if_event(struct notifier_block *this,
|
|
|
}
|
|
|
|
|
|
hard_iface = batadv_hardif_get_by_netdev(net_dev);
|
|
|
- if (!hard_iface && event == NETDEV_REGISTER)
|
|
|
+ if (!hard_iface && (event == NETDEV_REGISTER ||
|
|
|
+ event == NETDEV_POST_TYPE_CHANGE))
|
|
|
hard_iface = batadv_hardif_add_interface(net_dev);
|
|
|
|
|
|
if (!hard_iface)
|
|
@@ -724,6 +725,7 @@ static int batadv_hard_if_event(struct notifier_block *this,
|
|
|
batadv_hardif_deactivate_interface(hard_iface);
|
|
|
break;
|
|
|
case NETDEV_UNREGISTER:
|
|
|
+ case NETDEV_PRE_TYPE_CHANGE:
|
|
|
list_del_rcu(&hard_iface->list);
|
|
|
|
|
|
batadv_hardif_remove_interface(hard_iface);
|