summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlx5/core/en.h
diff options
context:
space:
mode:
authorMaxim Mikityanskiy2019-06-26 16:35:33 +0200
committerDaniel Borkmann2019-06-27 22:53:27 +0200
commitb9673cf5558c0ae1be787611884d4131633f31a8 (patch)
treef49334e4a15558fdf0b68782b37f81eab965f664 /drivers/net/ethernet/mellanox/mlx5/core/en.h
parentnet/mlx5e: Refactor struct mlx5e_xdp_info (diff)
downloadkernel-qcow2-linux-b9673cf5558c0ae1be787611884d4131633f31a8.tar.gz
kernel-qcow2-linux-b9673cf5558c0ae1be787611884d4131633f31a8.tar.xz
kernel-qcow2-linux-b9673cf5558c0ae1be787611884d4131633f31a8.zip
net/mlx5e: Share the XDP SQ for XDP_TX between RQs
Put the XDP SQ that is used for XDP_TX into the channel. It used to be a part of the RQ, but with introduction of AF_XDP there will be one more RQ that could share the same XDP SQ. This patch is a preparation for that change. Separate XDP_TX statistics per RQ were implemented in one of the previous patches. Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com> Signed-off-by: Tariq Toukan <tariqt@mellanox.com> Acked-by: Saeed Mahameed <saeedm@mellanox.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/en.h')
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/en.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h
index b3c2d7ef1287..010140753e73 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h
@@ -432,6 +432,7 @@ struct mlx5e_xdp_info {
dma_addr_t dma_addr;
} frame;
struct {
+ struct mlx5e_rq *rq;
struct mlx5e_dma_info di;
} page;
};
@@ -644,7 +645,7 @@ struct mlx5e_rq {
/* XDP */
struct bpf_prog *xdp_prog;
- struct mlx5e_xdpsq xdpsq;
+ struct mlx5e_xdpsq *xdpsq;
DECLARE_BITMAP(flags, 8);
struct page_pool *page_pool;
@@ -663,6 +664,7 @@ struct mlx5e_rq {
struct mlx5e_channel {
/* data path */
struct mlx5e_rq rq;
+ struct mlx5e_xdpsq rq_xdpsq;
struct mlx5e_txqsq sq[MLX5E_MAX_NUM_TC];
struct mlx5e_icosq icosq; /* internal control operations */
bool xdp;