Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 905199da authored by Jason Xing's avatar Jason Xing Committed by Greg Kroah-Hartman
Browse files

ixgbe: add double of VLAN header when computing the max MTU



commit 0967bf837784a11c65d66060623a74e65211af0b upstream.

Include the second VLAN HLEN into account when computing the maximum
MTU size as other drivers do.

Fixes: fabf1bce ("ixgbe: Prevent unsupported configurations with XDP")
Signed-off-by: default avatarJason Xing <kernelxing@tencent.com>
Reviewed-by: default avatarAlexander Duyck <alexanderduyck@fb.com>
Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent df099e65
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -67,6 +67,8 @@
#define IXGBE_RXBUFFER_4K    4096
#define IXGBE_MAX_RXBUFFER  16384  /* largest size for a single descriptor */

#define IXGBE_PKT_HDR_PAD   (ETH_HLEN + ETH_FCS_LEN + (VLAN_HLEN * 2))

/* Attempt to maximize the headroom available for incoming frames.  We
 * use a 2K buffer for receives and need 1536/1534 to store the data for
 * the frame.  This leaves us with 512 bytes of room.  From that we need
+1 −2
Original line number Diff line number Diff line
@@ -6745,8 +6745,7 @@ static int ixgbe_change_mtu(struct net_device *netdev, int new_mtu)
	struct ixgbe_adapter *adapter = netdev_priv(netdev);

	if (ixgbe_enabled_xdp_adapter(adapter)) {
		int new_frame_size = new_mtu + ETH_HLEN + ETH_FCS_LEN +
				     VLAN_HLEN;
		int new_frame_size = new_mtu + IXGBE_PKT_HDR_PAD;

		if (new_frame_size > ixgbe_max_xdp_frame_size(adapter)) {
			e_warn(probe, "Requested MTU size is not supported with XDP\n");