diff options
Diffstat (limited to 'drivers/net/team/team.c')
| -rw-r--r-- | drivers/net/team/team.c | 16 | 
1 files changed, 6 insertions, 10 deletions
| diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c index 6c5d5ef46f75..464570409796 100644 --- a/drivers/net/team/team.c +++ b/drivers/net/team/team.c @@ -1643,7 +1643,6 @@ static void team_destructor(struct net_device *dev)  	struct team *team = netdev_priv(dev);  	free_percpu(team->pcpu_stats); -	free_netdev(dev);  }  static int team_open(struct net_device *dev) @@ -2005,12 +2004,6 @@ static const struct net_device_ops team_netdev_ops = {  	.ndo_del_slave		= team_del_slave,  	.ndo_fix_features	= team_fix_features,  	.ndo_change_carrier     = team_change_carrier, -	.ndo_bridge_setlink	= switchdev_port_bridge_setlink, -	.ndo_bridge_getlink	= switchdev_port_bridge_getlink, -	.ndo_bridge_dellink	= switchdev_port_bridge_dellink, -	.ndo_fdb_add		= switchdev_port_fdb_add, -	.ndo_fdb_del		= switchdev_port_fdb_del, -	.ndo_fdb_dump		= switchdev_port_fdb_dump,  	.ndo_features_check	= passthru_features_check,  }; @@ -2079,7 +2072,8 @@ static void team_setup(struct net_device *dev)  	dev->netdev_ops = &team_netdev_ops;  	dev->ethtool_ops = &team_ethtool_ops; -	dev->destructor	= team_destructor; +	dev->needs_free_netdev = true; +	dev->priv_destructor = team_destructor;  	dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING);  	dev->priv_flags |= IFF_NO_QUEUE;  	dev->priv_flags |= IFF_TEAM; @@ -2107,7 +2101,8 @@ static void team_setup(struct net_device *dev)  }  static int team_newlink(struct net *src_net, struct net_device *dev, -			struct nlattr *tb[], struct nlattr *data[]) +			struct nlattr *tb[], struct nlattr *data[], +			struct netlink_ext_ack *extack)  {  	if (tb[IFLA_ADDRESS] == NULL)  		eth_hw_addr_random(dev); @@ -2115,7 +2110,8 @@ static int team_newlink(struct net *src_net, struct net_device *dev,  	return register_netdevice(dev);  } -static int team_validate(struct nlattr *tb[], struct nlattr *data[]) +static int team_validate(struct nlattr *tb[], struct nlattr *data[], +			 struct netlink_ext_ack *extack)  {  	if (tb[IFLA_ADDRESS]) {  		if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) | 
