Patch "net/mlx5e: Fix inline header size for small packets" has been added to the 4.12-stable tree
This is a note to let you know that I've just added the patch titled
net/mlx5e: Fix inline header size for small packets
to the 4.12-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
net-mlx5e-fix-inline-header-size-for-small-packets.patch
and it can be found in the queue-4.12 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Thu Sep 14 23:20:23 PDT 2017
From: Moshe Shemesh <[email protected]>
Date: Tue, 8 Aug 2017 15:56:37 +0300
Subject: net/mlx5e: Fix inline header size for small packets
From: Moshe Shemesh <[email protected]>
[ Upstream commit 6aace17e64f4aa1c49802c46bd10688968b3787f ]
Fix inline header size, make sure it is not greater than skb len. This bug effects small packets, for example L2 packets with size < 18.
--- drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-)
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +10 -7
@@ -127,10 +127,10 @@ static inline int mlx5e_skb_l3_header_ofreturn mlx5e_skb_l2_header_offset (skb); } -static inline unsigned int mlx5e_calc_min_inline (enum mlx5_inline_modes mode, -struct sk_buff *skb) +static inline u16 mlx5e_calc_min_inline (enum mlx5_inline_modes mode, +struct sk_buff *skb) { -int hlen; +u16 hlen;switch (mode) {case MLX5_INLINE_MODE_NONE :
@@ -139,19 +139,22 @@ static inline unsigned int mlx5e_calc_mi hlen =eth_get_headlen (skb->data,skb_headlen (skb));if (hlen ==ETH_HLEN && !skb_vlan_tag_present (skb)) hlen +=VLAN_HLEN ; -return hlen; +break ;case MLX5_INLINE_MODE_IP :/* When transport header is set to zero, it means no transport * header. When transport header is set to 0xff's, it means * transport header wasn't set. */ -if (skb_transport_offset (skb)) -return mlx5e_skb_l3_header_offset (skb); +if (skb_transport_offset (skb)) { + hlen =mlx5e_skb_l3_header_offset (skb); +break ; + }/* fall through */ case MLX5_INLINE_MODE_L2 :default : -return mlx5e_skb_l2_header_offset (skb); + hlen =mlx5e_skb_l2_header_offset (skb); } +return min_t (u16, hlen, skb->len); } static inline void mlx5e_tx_skb_pull_inline(unsigned char **skb_data,
Patches currently in stable-queue which might be from [email protected] are
queue-4.12/net-mlx5e-fix-inline-header-size-for-small-packets.patch