Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a1a66b11 authored by Andrew Lunn's avatar Andrew Lunn Committed by David S. Miller
Browse files

batman-adv: Act on NETDEV_*_TYPE_CHANGE events



A network interface can change type. It may change from a type which
batman does not support, e.g. hdlc, to one it does, e.g. hdlc-eth.
When an interface changes type, it sends two notifications. Handle
these notifications.

Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3ef0952c
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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);