Message ID | 20240717090820.894234-3-martin@strongswan.org (mailing list archive) |
---|---|
State | Accepted |
Commit | c5118072e228e7e4385fc5ac46b2e31cf6c4f2d3 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: dsa: Fix chip-wide frame size config in some drivers | expand |
On Wed, Jul 17, 2024 at 11:08:20AM +0200, Martin Willi wrote: > 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>
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);
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> --- drivers/net/dsa/b53/b53_common.c | 3 +++ 1 file changed, 3 insertions(+)