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

Commit e3a19b53 authored by Matthew Finlay's avatar Matthew Finlay Committed by David S. Miller
Browse files

net/mlx5e: Copy all L2 headers into inline segment



ConnectX4-Lx uses an inline wqe mode that currently defaults to
requiring the entire L2 header be included in the wqe.
This patch fixes mlx5e_get_inline_hdr_size() to account for
all L2 headers (VLAN, QinQ, etc) using skb_network_offset(skb).

Fixes: e586b3b0 ("net/mlx5: Ethernet Datapath files")
Signed-off-by: default avatarMatthew Finlay <matt@mellanox.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6cd392a0
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -123,7 +123,7 @@ static inline u16 mlx5e_get_inline_hdr_size(struct mlx5e_sq *sq,
	 * headers and occur before the data gather.
	 * Therefore these headers must be copied into the WQE
	 */
#define MLX5E_MIN_INLINE ETH_HLEN
#define MLX5E_MIN_INLINE (ETH_HLEN + VLAN_HLEN)

	if (bf) {
		u16 ihs = skb_headlen(skb);
@@ -135,7 +135,7 @@ static inline u16 mlx5e_get_inline_hdr_size(struct mlx5e_sq *sq,
			return skb_headlen(skb);
	}

	return MLX5E_MIN_INLINE;
	return max(skb_network_offset(skb), MLX5E_MIN_INLINE);
}

static inline void mlx5e_tx_skb_pull_inline(unsigned char **skb_data,