ACK/Cmnt: [PATCH] net/mlx5e: Check tunnel offload is required before setting SWP
Stefan Bader
stefan.bader at canonical.com
Thu Apr 8 06:49:16 UTC 2021
On 05.04.21 15:31, Tim Gardner wrote:
> From: Moshe Shemesh <moshe at nvidia.com>
>
> BugLink: https://bugs.launchpad.net/bugs/1921769
>
> Check that tunnel offload is required before setting Software Parser
> offsets to get Geneve HW offload. In case of Geneve packet we check HW
> offload support of SWP in mlx5e_tunnel_features_check() and set features
> accordingly, this should be reflected in skb offload requested by the
> kernel and we should add the Software Parser offsets only if requested.
> Otherwise, in case HW doesn't support SWP for Geneve, data path will
> mistakenly try to offload Geneve SKBs with skb->encapsulation set,
> regardless of whether offload was requested or not on this specific SKB.
>
> Fixes: e3cfc7e6b7bd ("net/mlx5e: TX, Add geneve tunnel stateless offload support")
> Signed-off-by: Moshe Shemesh <moshe at nvidia.com>
> Reviewed-by: Tariq Toukan <tariqt at nvidia.com>
> Signed-off-by: Saeed Mahameed <saeedm at nvidia.com>
> (backported from commit e1c3940c6003d820c787473c65711b49c2d1bc42)
> [rtg - the affected code did not get moved to
> drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h until
> 8e4b53f60f7d33cf6c60f790cf506220b2bcbb0f ("net/mlx5e: Refactor xmit functions") ]
> Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
Acked-by: Stefan Bader <stefan.bader at canonical.com>
> ---
The status of this for B/G/H is still unclear. Likely B is not affected (4.15)
but is anything done for Groovy and Hirsute?
-Stefan
> drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c
> index 2317be1b9956..ca8fae2df80f 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c
> @@ -341,7 +341,7 @@ netdev_tx_t mlx5e_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
> dseg = wqe->data;
>
> #if IS_ENABLED(CONFIG_GENEVE)
> - if (skb->encapsulation)
> + if (skb->encapsulation && skb->ip_summed == CHECKSUM_PARTIAL)
> mlx5e_tx_tunnel_accel(skb, eseg, ihs);
> #endif
> mlx5e_txwqe_build_eseg_csum(sq, skb, eseg);
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20210408/8cd3a5ff/attachment-0001.sig>
More information about the kernel-team
mailing list