[PATCH][Groovy] net/mlx5e: Check tunnel offload is required before setting SWP
Tim Gardner
tim.gardner at canonical.com
Fri Apr 9 12:31:57 UTC 2021
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>
---
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 77bd986a8c27..9ae4a98eeaa6 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c
@@ -340,7 +340,7 @@ void 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);
--
2.17.1
More information about the kernel-team
mailing list