All patches automatically rebased Build system: x86_64 Build-tested: bcm2711/RPi4B, mt7622/RT3200 Run-tested: bcm2711/RPi4B, mt7622/RT3200 Signed-off-by: John Audia <therealgraysky@proton.me>
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 904e112ad431492b34f235f59738e8312802bbf9 Mon Sep 17 00:00:00 2001
 | 
						|
From: Vladimir Oltean <vladimir.oltean@nxp.com>
 | 
						|
Date: Thu, 6 Jan 2022 01:11:12 +0200
 | 
						|
Subject: [PATCH 1/6] net: dsa: reorder PHY initialization with MTU setup in
 | 
						|
 slave.c
 | 
						|
 | 
						|
In dsa_slave_create() there are 2 sections that take rtnl_lock():
 | 
						|
MTU change and netdev registration. They are separated by PHY
 | 
						|
initialization.
 | 
						|
 | 
						|
There isn't any strict ordering requirement except for the fact that
 | 
						|
netdev registration should be last. Therefore, we can perform the MTU
 | 
						|
change a bit later, after the PHY setup. A future change will then be
 | 
						|
able to merge the two rtnl_lock sections into one.
 | 
						|
 | 
						|
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/slave.c | 14 +++++++-------
 | 
						|
 1 file changed, 7 insertions(+), 7 deletions(-)
 | 
						|
 | 
						|
--- a/net/dsa/slave.c
 | 
						|
+++ b/net/dsa/slave.c
 | 
						|
@@ -1977,13 +1977,6 @@ int dsa_slave_create(struct dsa_port *po
 | 
						|
 	port->slave = slave_dev;
 | 
						|
 	dsa_slave_setup_tagger(slave_dev);
 | 
						|
 
 | 
						|
-	rtnl_lock();
 | 
						|
-	ret = dsa_slave_change_mtu(slave_dev, ETH_DATA_LEN);
 | 
						|
-	rtnl_unlock();
 | 
						|
-	if (ret && ret != -EOPNOTSUPP)
 | 
						|
-		dev_warn(ds->dev, "nonfatal error %d setting MTU to %d on port %d\n",
 | 
						|
-			 ret, ETH_DATA_LEN, port->index);
 | 
						|
-
 | 
						|
 	netif_carrier_off(slave_dev);
 | 
						|
 
 | 
						|
 	ret = dsa_slave_phy_setup(slave_dev);
 | 
						|
@@ -1995,6 +1988,13 @@ int dsa_slave_create(struct dsa_port *po
 | 
						|
 	}
 | 
						|
 
 | 
						|
 	rtnl_lock();
 | 
						|
+	ret = dsa_slave_change_mtu(slave_dev, ETH_DATA_LEN);
 | 
						|
+	rtnl_unlock();
 | 
						|
+	if (ret && ret != -EOPNOTSUPP)
 | 
						|
+		dev_warn(ds->dev, "nonfatal error %d setting MTU to %d on port %d\n",
 | 
						|
+			 ret, ETH_DATA_LEN, port->index);
 | 
						|
+
 | 
						|
+	rtnl_lock();
 | 
						|
 
 | 
						|
 	ret = register_netdevice(slave_dev);
 | 
						|
 	if (ret) {
 |