diff options
author | Martin Willi <martin@strongswan.org> | 2024-07-17 11:08:20 +0200 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2024-07-18 13:09:12 +0200 |
commit | c5118072e228e7e4385fc5ac46b2e31cf6c4f2d3 (patch) | |
tree | 686a917918c995757d44e50943c88da5a6975907 /drivers/net/dsa | |
parent | 66b6095c264e1b4e0a441c6329861806504e06c6 (diff) | |
download | lwn-c5118072e228e7e4385fc5ac46b2e31cf6c4f2d3.tar.gz lwn-c5118072e228e7e4385fc5ac46b2e31cf6c4f2d3.zip |
net: dsa: b53: Limit chip-wide jumbo frame config to CPU ports
Broadcom switches supported by the b53 driver use a chip-wide jumbo frame
configuration. In the commit referenced with the Fixes tag, the setting
is applied just for the last port changing its MTU.
While configuring CPU ports accounts for tagger overhead, user ports do
not. When setting the MTU for a user port, the chip-wide setting is
reduced to not include the tagger overhead, resulting in an potentially
insufficient chip-wide maximum frame size for the CPU port.
As, by design, the CPU port MTU is adjusted for any user port change,
apply the chip-wide setting only for CPU ports. This aligns the driver
to the behavior of other switch drivers.
Fixes: 6ae5834b983a ("net: dsa: b53: add MTU configuration support")
Suggested-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: Martin Willi <martin@strongswan.org>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'drivers/net/dsa')
-rw-r--r-- | drivers/net/dsa/b53/b53_common.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c index 8f50abe739b7..0783fc121bbb 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -2256,6 +2256,9 @@ static int b53_change_mtu(struct dsa_switch *ds, int port, int mtu) if (is5325(dev) || is5365(dev)) return -EOPNOTSUPP; + if (!dsa_is_cpu_port(ds, port)) + return 0; + enable_jumbo = (mtu >= JMS_MIN_SIZE); allow_10_100 = (dev->chip_id == BCM583XX_DEVICE_ID); |