diff options
author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2022-04-15 18:46:26 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-04-20 10:34:34 +0100 |
commit | be6ff9665d642d4cd0800b508ded289eaa5b02a2 (patch) | |
tree | 44cf842cc4876763af1b5c44cb9c15a35b75de46 /net/dsa/slave.c | |
parent | net: dsa: drop dsa_slave_priv from dsa_slave_change_mtu (diff) | |
download | linux-dev-be6ff9665d642d4cd0800b508ded289eaa5b02a2.tar.xz linux-dev-be6ff9665d642d4cd0800b508ded289eaa5b02a2.zip |
net: dsa: don't emit targeted cross-chip notifiers for MTU change
A cross-chip notifier with "targeted_match=true" is one that matches
only the local port of the switch that emitted it. In other words,
passing through the cross-chip notifier layer serves no purpose.
Eliminate this concept by calling directly ds->ops->port_change_mtu
instead of emitting a targeted cross-chip notifier. This leaves the
DSA_NOTIFIER_MTU event being emitted only for MTU updates on the CPU
port, which need to be reflected also across all DSA links.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dsa/slave.c')
-rw-r--r-- | net/dsa/slave.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/net/dsa/slave.c b/net/dsa/slave.c index bf93d6b38668..63da683d4660 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -1859,15 +1859,14 @@ int dsa_slave_change_mtu(struct net_device *dev, int new_mtu) goto out_master_failed; /* We only need to propagate the MTU of the CPU port to - * upstream switches, so create a non-targeted notifier which - * updates all switches. + * upstream switches, so emit a notifier which updates them. */ - err = dsa_port_mtu_change(cpu_dp, cpu_mtu, false); + err = dsa_port_mtu_change(cpu_dp, cpu_mtu); if (err) goto out_cpu_failed; } - err = dsa_port_mtu_change(dp, new_mtu, true); + err = ds->ops->port_change_mtu(ds, dp->index, new_mtu); if (err) goto out_port_failed; @@ -1880,8 +1879,7 @@ int dsa_slave_change_mtu(struct net_device *dev, int new_mtu) out_port_failed: if (new_master_mtu != old_master_mtu) dsa_port_mtu_change(cpu_dp, old_master_mtu - - dsa_tag_protocol_overhead(cpu_dp->tag_ops), - false); + dsa_tag_protocol_overhead(cpu_dp->tag_ops)); out_cpu_failed: if (new_master_mtu != old_master_mtu) dev_set_mtu(master, old_master_mtu); |