 590aa0ca51
			
		
	
	590aa0ca51
	
	
	
		
			
			Manually rebase: pending-5.15/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch ath79/patches-5.15/910-unaligned_access_hacks.patch All other patches automatically rebased Build system: x86_64 Build-tested: bcm2711/RPi4B Run-tested: bcm2711/RPi4B Signed-off-by: John Audia <therealgraysky@proton.me>
		
			
				
	
	
		
			92 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From a1ff94c2973c43bc1e2677ac63ebb15b1d1ff846 Mon Sep 17 00:00:00 2001
 | |
| From: Vladimir Oltean <vladimir.oltean@nxp.com>
 | |
| Date: Thu, 6 Jan 2022 01:11:14 +0200
 | |
| Subject: [PATCH 3/6] net: dsa: stop updating master MTU from master.c
 | |
| 
 | |
| At present there are two paths for changing the MTU of the DSA master.
 | |
| 
 | |
| The first is:
 | |
| 
 | |
| dsa_tree_setup
 | |
| -> dsa_tree_setup_ports
 | |
|    -> dsa_port_setup
 | |
|       -> dsa_slave_create
 | |
|          -> dsa_slave_change_mtu
 | |
|             -> dev_set_mtu(master)
 | |
| 
 | |
| The second is:
 | |
| 
 | |
| dsa_tree_setup
 | |
| -> dsa_tree_setup_master
 | |
|    -> dsa_master_setup
 | |
|       -> dev_set_mtu(dev)
 | |
| 
 | |
| So the dev_set_mtu() call from dsa_master_setup() has been effectively
 | |
| superseded by the dsa_slave_change_mtu(slave_dev, ETH_DATA_LEN) that is
 | |
| done from dsa_slave_create() for each user port. The later function also
 | |
| updates the master MTU according to the largest user port MTU from the
 | |
| tree. Therefore, updating the master MTU through a separate code path
 | |
| isn't needed.
 | |
| 
 | |
| Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
 | |
| Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
 | |
| Signed-off-by: David S. Miller <davem@davemloft.net>
 | |
| ---
 | |
|  net/dsa/master.c | 25 +------------------------
 | |
|  1 file changed, 1 insertion(+), 24 deletions(-)
 | |
| 
 | |
| --- a/net/dsa/master.c
 | |
| +++ b/net/dsa/master.c
 | |
| @@ -329,28 +329,13 @@ static const struct attribute_group dsa_
 | |
|  	.attrs	= dsa_slave_attrs,
 | |
|  };
 | |
|  
 | |
| -static void dsa_master_reset_mtu(struct net_device *dev)
 | |
| -{
 | |
| -	int err;
 | |
| -
 | |
| -	rtnl_lock();
 | |
| -	err = dev_set_mtu(dev, ETH_DATA_LEN);
 | |
| -	if (err)
 | |
| -		netdev_dbg(dev,
 | |
| -			   "Unable to reset MTU to exclude DSA overheads\n");
 | |
| -	rtnl_unlock();
 | |
| -}
 | |
| -
 | |
|  static struct lock_class_key dsa_master_addr_list_lock_key;
 | |
|  
 | |
|  int dsa_master_setup(struct net_device *dev, struct dsa_port *cpu_dp)
 | |
|  {
 | |
| -	const struct dsa_device_ops *tag_ops = cpu_dp->tag_ops;
 | |
|  	struct dsa_switch *ds = cpu_dp->ds;
 | |
|  	struct device_link *consumer_link;
 | |
| -	int mtu, ret;
 | |
| -
 | |
| -	mtu = ETH_DATA_LEN + dsa_tag_protocol_overhead(tag_ops);
 | |
| +	int ret;
 | |
|  
 | |
|  	/* The DSA master must use SET_NETDEV_DEV for this to work. */
 | |
|  	consumer_link = device_link_add(ds->dev, dev->dev.parent,
 | |
| @@ -360,13 +345,6 @@ int dsa_master_setup(struct net_device *
 | |
|  			   "Failed to create a device link to DSA switch %s\n",
 | |
|  			   dev_name(ds->dev));
 | |
|  
 | |
| -	rtnl_lock();
 | |
| -	ret = dev_set_mtu(dev, mtu);
 | |
| -	rtnl_unlock();
 | |
| -	if (ret)
 | |
| -		netdev_warn(dev, "error %d setting MTU to %d to include DSA overhead\n",
 | |
| -			    ret, mtu);
 | |
| -
 | |
|  	/* If we use a tagging format that doesn't have an ethertype
 | |
|  	 * field, make sure that all packets from this point on get
 | |
|  	 * sent to the tag format's receive function.
 | |
| @@ -404,7 +382,6 @@ void dsa_master_teardown(struct net_devi
 | |
|  	sysfs_remove_group(&dev->dev.kobj, &dsa_group);
 | |
|  	dsa_netdev_ops_set(dev, NULL);
 | |
|  	dsa_master_ethtool_teardown(dev);
 | |
| -	dsa_master_reset_mtu(dev);
 | |
|  	dsa_master_set_promiscuity(dev, -1);
 | |
|  
 | |
|  	dev->dsa_ptr = NULL;
 |