mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
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>
This commit is contained in:
parent
d093d17c95
commit
904e112ad4
@ -2011,13 +2011,6 @@ int dsa_slave_create(struct dsa_port *port)
|
|||||||
port->slave = slave_dev;
|
port->slave = slave_dev;
|
||||||
dsa_slave_setup_tagger(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);
|
netif_carrier_off(slave_dev);
|
||||||
|
|
||||||
ret = dsa_slave_phy_setup(slave_dev);
|
ret = dsa_slave_phy_setup(slave_dev);
|
||||||
@ -2028,6 +2021,13 @@ int dsa_slave_create(struct dsa_port *port)
|
|||||||
goto out_gcells;
|
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();
|
rtnl_lock();
|
||||||
|
|
||||||
ret = register_netdevice(slave_dev);
|
ret = register_netdevice(slave_dev);
|
||||||
|
Loading…
Reference in New Issue
Block a user