Message ID | 20230204133535.99921-3-kerneljasonxing@gmail.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Fix MTU related issues | expand |
On 2/4/2023 5:35 AM, Jason Xing wrote: > From: Jason Xing <kernelxing@tencent.com> > > Include the second VLAN HLEN into account when computing the maximum > MTU size as other drivers do. > > Fixes: 0c8493d90b6b ("i40e: add XDP support for pass and drop actions") > Signed-off-by: Jason Xing <kernelxing@tencent.com> > --- > drivers/net/ethernet/intel/i40e/i40e.h | 2 ++ > drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +- > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h > index 60e351665c70..e03853d3c706 100644 > --- a/drivers/net/ethernet/intel/i40e/i40e.h > +++ b/drivers/net/ethernet/intel/i40e/i40e.h > @@ -107,6 +107,8 @@ > #define I40E_BW_MBPS_DIVISOR 125000 /* rate / (1000000 / 8) Mbps */ > #define I40E_MAX_BW_INACTIVE_ACCUM 4 /* accumulate 4 credits max */ > > +#define I40E_PACKET_HDR_PAD (ETH_HLEN + ETH_FCS_LEN + (VLAN_HLEN * 2)) This already exists: https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/intel/i40e/i40e_txrx.h#L112
On Wed, Feb 8, 2023 at 3:03 AM Tony Nguyen <anthony.l.nguyen@intel.com> wrote: > > > > On 2/4/2023 5:35 AM, Jason Xing wrote: > > From: Jason Xing <kernelxing@tencent.com> > > > > Include the second VLAN HLEN into account when computing the maximum > > MTU size as other drivers do. > > > > Fixes: 0c8493d90b6b ("i40e: add XDP support for pass and drop actions") > > Signed-off-by: Jason Xing <kernelxing@tencent.com> > > --- > > drivers/net/ethernet/intel/i40e/i40e.h | 2 ++ > > drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +- > > 2 files changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h > > index 60e351665c70..e03853d3c706 100644 > > --- a/drivers/net/ethernet/intel/i40e/i40e.h > > +++ b/drivers/net/ethernet/intel/i40e/i40e.h > > @@ -107,6 +107,8 @@ > > #define I40E_BW_MBPS_DIVISOR 125000 /* rate / (1000000 / 8) Mbps */ > > #define I40E_MAX_BW_INACTIVE_ACCUM 4 /* accumulate 4 credits max */ > > > > +#define I40E_PACKET_HDR_PAD (ETH_HLEN + ETH_FCS_LEN + (VLAN_HLEN * 2)) > > This already exists: > https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/intel/i40e/i40e_txrx.h#L112 Thanks for pointing out the duplication definition. I'll drop this in the i40e.h file.
diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h index 60e351665c70..e03853d3c706 100644 --- a/drivers/net/ethernet/intel/i40e/i40e.h +++ b/drivers/net/ethernet/intel/i40e/i40e.h @@ -107,6 +107,8 @@ #define I40E_BW_MBPS_DIVISOR 125000 /* rate / (1000000 / 8) Mbps */ #define I40E_MAX_BW_INACTIVE_ACCUM 4 /* accumulate 4 credits max */ +#define I40E_PACKET_HDR_PAD (ETH_HLEN + ETH_FCS_LEN + (VLAN_HLEN * 2)) + /* driver state flags */ enum i40e_state_t { __I40E_TESTING, diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index 53d0083e35da..d039928f3646 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -2921,7 +2921,7 @@ static int i40e_change_mtu(struct net_device *netdev, int new_mtu) struct i40e_pf *pf = vsi->back; if (i40e_enabled_xdp_vsi(vsi)) { - int frame_size = new_mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN; + int frame_size = new_mtu + I40E_PACKET_HDR_PAD; if (frame_size > i40e_max_xdp_frame_size(vsi)) return -EINVAL;