Hi Paul, Nice catch. On 2025-01-09 11:37:06 +0000, Paul Barker wrote: > When tx_max_frame_size was added to struct ravb_hw_info, no value was > set in ravb_rzv2m_hw_info so the default value of zero was used. > > The maximum MTU is set by subtracting from tx_max_frame_size to allow > space for headers and frame checksums. As ndev->max_mtu is unsigned, > this subtraction wraps around leading to a ridiculously large positive > value that is obviously incorrect. > > Before tx_max_frame_size was introduced, the maximum MTU was based on > rx_max_frame_size. So, we can restore the correct maximum MTU by copying > the rx_max_frame_size value into tx_max_frame_size for RZ/V2M. > > Fixes: 1d63864299ca ("net: ravb: Fix maximum TX frame size for GbEth devices") > Signed-off-by: Paul Barker <paul.barker.ct@xxxxxxxxxxxxxx> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx> > --- > drivers/net/ethernet/renesas/ravb_main.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c > index ac0f093f647a..bc395294a32d 100644 > --- a/drivers/net/ethernet/renesas/ravb_main.c > +++ b/drivers/net/ethernet/renesas/ravb_main.c > @@ -2763,6 +2763,7 @@ static const struct ravb_hw_info ravb_rzv2m_hw_info = { > .net_features = NETIF_F_RXCSUM, > .stats_len = ARRAY_SIZE(ravb_gstrings_stats), > .tccr_mask = TCCR_TSRQ0 | TCCR_TSRQ1 | TCCR_TSRQ2 | TCCR_TSRQ3, > + .tx_max_frame_size = SZ_2K, > .rx_max_frame_size = SZ_2K, > .rx_buffer_size = SZ_2K + > SKB_DATA_ALIGN(sizeof(struct skb_shared_info)), > > base-commit: 2d2d4f60ed266a8f340a721102d035252606980b > -- > 2.39.5 > -- Kind Regards, Niklas Söderlund