diff options
Diffstat (limited to 'net/dsa/master.c')
| -rw-r--r-- | net/dsa/master.c | 21 | 
1 files changed, 6 insertions, 15 deletions
diff --git a/net/dsa/master.c b/net/dsa/master.c index bd44bde272f4..b5c535af63a3 100644 --- a/net/dsa/master.c +++ b/net/dsa/master.c @@ -314,20 +314,6 @@ static const struct attribute_group dsa_group = {  	.attrs	= dsa_slave_attrs,  }; -static void dsa_master_set_mtu(struct net_device *dev, struct dsa_port *cpu_dp) -{ -	unsigned int mtu = ETH_DATA_LEN + cpu_dp->tag_ops->overhead; -	int err; - -	rtnl_lock(); -	if (mtu <= dev->max_mtu) { -		err = dev_set_mtu(dev, mtu); -		if (err) -			netdev_dbg(dev, "Unable to set MTU to include for DSA overheads\n"); -	} -	rtnl_unlock(); -} -  static void dsa_master_reset_mtu(struct net_device *dev)  {  	int err; @@ -344,7 +330,12 @@ int dsa_master_setup(struct net_device *dev, struct dsa_port *cpu_dp)  {  	int ret; -	dsa_master_set_mtu(dev,  cpu_dp); +	rtnl_lock(); +	ret = dev_set_mtu(dev, ETH_DATA_LEN + cpu_dp->tag_ops->overhead); +	rtnl_unlock(); +	if (ret) +		netdev_warn(dev, "error %d setting MTU to include DSA overhead\n", +			    ret);  	/* If we use a tagging format that doesn't have an ethertype  	 * field, make sure that all packets from this point on get  |