
Backport qca8k mdio improvement patch merged upstream, where we use eth packet when available to send mdio commands. This should improve speed and cause less load on the CPU. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
58 lines
1.8 KiB
Diff
58 lines
1.8 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(-)
|
|
|
|
diff --git a/net/dsa/slave.c b/net/dsa/slave.c
|
|
index 88f7b8686dac..88bcdba92fa7 100644
|
|
--- a/net/dsa/slave.c
|
|
+++ b/net/dsa/slave.c
|
|
@@ -2011,13 +2011,6 @@ int dsa_slave_create(struct dsa_port *port)
|
|
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);
|
|
@@ -2028,6 +2021,13 @@ int dsa_slave_create(struct dsa_port *port)
|
|
goto out_gcells;
|
|
}
|
|
|
|
+ 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);
|
|
--
|
|
2.34.1
|
|
|