> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of > Alexander Lobakin > Sent: Tuesday, February 10, 2026 17:37 > To: Kohei Enju <[email protected]> > Cc: [email protected]; [email protected]; Nguyen, Anthony > L > <[email protected]>; Kitszel, Przemyslaw > <[email protected]>; Andrew Lunn <[email protected]>; > David S. Miller <[email protected]>; Eric Dumazet > <[email protected]>; Jakub Kicinski <[email protected]>; Paolo Abeni > <[email protected]>; [email protected] > Subject: Re: [Intel-wired-lan] [PATCH v1 iwl-net] iavf: fix netdev->max_mtu to > respect actual hardware limit > > From: Kohei Enju <[email protected]> > Date: Tue, 10 Feb 2026 15:57:14 +0000 > > > iavf sets LIBIE_MAX_MTU as netdev->max_mtu, ignoring vf_res->max_mtu > > from PF [1]. This allows setting an MTU beyond the actual hardware > > limit, causing TX queue timeouts [2]. > > > > Set correct netdev->max_mtu using vf_res->max_mtu from the PF. > > > > Note that currently PF drivers such as ice/i40e set the frame size in > > vf_res->max_mtu, not MTU. Convert vf_res->max_mtu to MTU before > > setting > > netdev->max_mtu. > > > > [1] > > # ip -j -d link show $DEV | jq '.[0].max_mtu' > > 16356 > > > > [2] > > iavf 0000:00:05.0 enp0s5: NETDEV WATCHDOG: CPU: 1: transmit queue 0 > > timed out 5692 ms iavf 0000:00:05.0 enp0s5: NIC Link is Up Speed is > > 10 Gbps Full Duplex iavf 0000:00:05.0 enp0s5: NETDEV WATCHDOG: CPU: > > 6: transmit queue 3 timed out 5312 ms iavf 0000:00:05.0 enp0s5: NIC > > Link is Up Speed is 10 Gbps Full Duplex ... > > > > Fixes: 5fa4caff59f2 ("iavf: switch to Page Pool") > > Signed-off-by: Kohei Enju <[email protected]> > > Reviewed-by: Alexander Lobakin <[email protected]> > > Although I'm not sure the 'Fixes:' tag is correct. Was vs_res->max_mtu > accounted > before switching to Page Pool? If so, then yes, my fault. > Otherwise, this issue is older than libie. > I'm asking as IIRC before I did set max_mtu to the libie definition, there > was a > hardcoded value already. > > > --- > > Ideally we may fix ice/i40e to set max MTU (not frame size) in > > vf_res->max_mtu on the PF side, but this would break PF/VF API > > compatibility between different kernel versions and would need > > modifications on code that treats vf_res->max_mtu as the frame size. > > > > If it's acceptable to change the PF/VF API, this patch would be simply: > > netdev->max_mtu = min_not_zero(adapter->vf_res->max_mtu, > > LIBIE_MAX_MTU); > > --- > > drivers/net/ethernet/intel/iavf/iavf_main.c | 17 ++++++++++++++++- > > 1 file changed, 16 insertions(+), 1 deletion(-) > Thanks, > Olek
Tested-by: Rafal Romanowski <[email protected]>
