Message ID | 20220617071607.3782772-1-o.rempel@pengutronix.de (mailing list archive) |
---|---|
State | Accepted |
Commit | 46e31db55da8e9661894e76086159ca28c348c5c |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next,v2,1/1] net: macb: fix negative max_mtu size for sama5d3 | expand |
On 17.06.2022 10:16, Oleksij Rempel wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > JML register on probe will return zero . This register is configured > later on macb_init_hw() which is called on open. > Since we have zero, after header and FCS length subtraction we will get > negative max_mtu size. This issue was affecting DSA drivers with MTU support > (for example KSZ9477). > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com> > --- > changes v2: > - properly describe fail reason > - simplify max_mtu logic > > drivers/net/ethernet/cadence/macb_main.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c > index d89098f4ede8..d0ea8dbfa213 100644 > --- a/drivers/net/ethernet/cadence/macb_main.c > +++ b/drivers/net/ethernet/cadence/macb_main.c > @@ -4913,8 +4913,8 @@ static int macb_probe(struct platform_device *pdev) > > /* MTU range: 68 - 1500 or 10240 */ > dev->min_mtu = GEM_MTU_MIN_SIZE; > - if (bp->caps & MACB_CAPS_JUMBO) > - dev->max_mtu = gem_readl(bp, JML) - ETH_HLEN - ETH_FCS_LEN; > + if ((bp->caps & MACB_CAPS_JUMBO) && bp->jumbo_max_len) > + dev->max_mtu = bp->jumbo_max_len - ETH_HLEN - ETH_FCS_LEN; > else > dev->max_mtu = ETH_DATA_LEN; > > -- > 2.30.2 >
Hello: This patch was applied to netdev/net-next.git (master) by David S. Miller <davem@davemloft.net>: On Fri, 17 Jun 2022 09:16:07 +0200 you wrote: > JML register on probe will return zero . This register is configured > later on macb_init_hw() which is called on open. > Since we have zero, after header and FCS length subtraction we will get > negative max_mtu size. This issue was affecting DSA drivers with MTU support > (for example KSZ9477). > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > > [...] Here is the summary with links: - [net-next,v2,1/1] net: macb: fix negative max_mtu size for sama5d3 https://git.kernel.org/netdev/net-next/c/46e31db55da8 You are awesome, thank you!
diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c index d89098f4ede8..d0ea8dbfa213 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -4913,8 +4913,8 @@ static int macb_probe(struct platform_device *pdev) /* MTU range: 68 - 1500 or 10240 */ dev->min_mtu = GEM_MTU_MIN_SIZE; - if (bp->caps & MACB_CAPS_JUMBO) - dev->max_mtu = gem_readl(bp, JML) - ETH_HLEN - ETH_FCS_LEN; + if ((bp->caps & MACB_CAPS_JUMBO) && bp->jumbo_max_len) + dev->max_mtu = bp->jumbo_max_len - ETH_HLEN - ETH_FCS_LEN; else dev->max_mtu = ETH_DATA_LEN;
JML register on probe will return zero . This register is configured later on macb_init_hw() which is called on open. Since we have zero, after header and FCS length subtraction we will get negative max_mtu size. This issue was affecting DSA drivers with MTU support (for example KSZ9477). Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> --- changes v2: - properly describe fail reason - simplify max_mtu logic drivers/net/ethernet/cadence/macb_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)