summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c
diff options
context:
space:
mode:
authorMaxim Mikityanskiy <maximmi@nvidia.com>2022-01-27 18:01:05 +0300
committerSaeed Mahameed <saeedm@nvidia.com>2022-03-18 23:51:12 +0300
commitea5d49bdae8b4c9dcdac574eef96b1bd47000c2a (patch)
tree3ce3ffde92a4ce8296f1f46497cd88e5035d8334 /drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c
parentd51f4a4cca6f629927b1871af0c6f5ce7a9022e9 (diff)
downloadlinux-ea5d49bdae8b4c9dcdac574eef96b1bd47000c2a.tar.xz
net/mlx5e: Add XDP multi buffer support to the non-linear legacy RQ
This commit adds XDP multi buffer support to the RX path in the non-linear legacy RQ mode. mlx5e_xdp_handle is called from mlx5e_skb_from_cqe_nonlinear. XDP_TX action for fragmented XDP frames is not yet supported and blocked. Signed-off-by: Maxim Mikityanskiy <maximmi@nvidia.com> Reviewed-by: Tariq Toukan <tariqt@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c')
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c b/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c
index 6aa77f0e094e..3a837030e96e 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c
@@ -68,6 +68,11 @@ mlx5e_xmit_xdp_buff(struct mlx5e_xdpsq *sq, struct mlx5e_rq *rq,
if (unlikely(!xdpf))
return false;
+ if (unlikely(xdp_frame_has_frags(xdpf))) {
+ xdp_return_frame(xdpf);
+ return false;
+ }
+
xdptxd.data = xdpf->data;
xdptxd.len = xdpf->len;