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

Commit 29bf24af authored by Jiri Pirko's avatar Jiri Pirko Committed by David S. Miller
Browse files

net: add possibility to pass information about upper device via notifier



Sometimes the drivers and other code would find it handy to know some
internal information about upper device being changed. So allow upper-code
to pass information down to notifier listeners during linking.

Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6dffb044
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1204,7 +1204,7 @@ static int bond_master_upper_dev_link(struct net_device *bond_dev,
{
	int err;

	err = netdev_master_upper_dev_link(slave_dev, bond_dev, slave);
	err = netdev_master_upper_dev_link(slave_dev, bond_dev, slave, NULL);
	if (err)
		return err;
	slave_dev->flags |= IFF_SLAVE;
+1 −1
Original line number Diff line number Diff line
@@ -1083,7 +1083,7 @@ static int team_upper_dev_link(struct net_device *dev,
{
	int err;

	err = netdev_master_upper_dev_link(port_dev, dev, NULL);
	err = netdev_master_upper_dev_link(port_dev, dev, NULL, NULL);
	if (err)
		return err;
	port_dev->priv_flags |= IFF_TEAM_PORT;
+1 −1
Original line number Diff line number Diff line
@@ -624,7 +624,7 @@ static int do_vrf_add_slave(struct net_device *dev, struct net_device *port_dev)
		goto out_fail;
	}

	ret = netdev_master_upper_dev_link(port_dev, dev, NULL);
	ret = netdev_master_upper_dev_link(port_dev, dev, NULL, NULL);
	if (ret < 0)
		goto out_unregister;

+2 −1
Original line number Diff line number Diff line
@@ -2163,6 +2163,7 @@ struct netdev_notifier_changeupper_info {
	struct net_device *upper_dev; /* new upper dev */
	bool master; /* is upper dev master */
	bool linking; /* is the nofication for link or unlink */
	void *upper_info; /* upper dev info */
};

static inline void netdev_notifier_info_init(struct netdev_notifier_info *info,
@@ -3620,7 +3621,7 @@ struct net_device *netdev_master_upper_dev_get_rcu(struct net_device *dev);
int netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev);
int netdev_master_upper_dev_link(struct net_device *dev,
				 struct net_device *upper_dev,
				 void *upper_priv);
				 void *upper_priv, void *upper_info);
void netdev_upper_dev_unlink(struct net_device *dev,
			     struct net_device *upper_dev);
void netdev_adjacent_rename_links(struct net_device *dev, char *oldname);
+1 −1
Original line number Diff line number Diff line
@@ -465,7 +465,7 @@ int batadv_hardif_enable_interface(struct batadv_hard_iface *hard_iface,
	bat_priv = netdev_priv(hard_iface->soft_iface);

	ret = netdev_master_upper_dev_link(hard_iface->net_dev,
					   soft_iface, NULL);
					   soft_iface, NULL, NULL);
	if (ret)
		goto err_dev;

Loading