Commit 625dff29 authored by Dragos Tatulea's avatar Dragos Tatulea Committed by Saeed Mahameed

net/mlx5e: RX, Change wqe last_in_page field from bool to bit flags

Change the bool flag to a bitfield as we'll use it in a downstream patch
in the series to add signaling about skipping a fragment release.
Signed-off-by: default avatarDragos Tatulea <dtatulea@nvidia.com>
Reviewed-by: default avatarTariq Toukan <tariqt@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent 4c2a1323
...@@ -605,13 +605,17 @@ struct mlx5e_frag_page { ...@@ -605,13 +605,17 @@ struct mlx5e_frag_page {
u16 frags; u16 frags;
}; };
enum mlx5e_wqe_frag_flag {
MLX5E_WQE_FRAG_LAST_IN_PAGE,
};
struct mlx5e_wqe_frag_info { struct mlx5e_wqe_frag_info {
union { union {
struct mlx5e_frag_page *frag_page; struct mlx5e_frag_page *frag_page;
struct xdp_buff **xskp; struct xdp_buff **xskp;
}; };
u32 offset; u32 offset;
bool last_in_page; u8 flags;
}; };
union mlx5e_alloc_units { union mlx5e_alloc_units {
......
...@@ -532,7 +532,7 @@ static void mlx5e_init_frags_partition(struct mlx5e_rq *rq) ...@@ -532,7 +532,7 @@ static void mlx5e_init_frags_partition(struct mlx5e_rq *rq)
next_frag.frag_page++; next_frag.frag_page++;
next_frag.offset = 0; next_frag.offset = 0;
if (prev) if (prev)
prev->last_in_page = true; prev->flags |= BIT(MLX5E_WQE_FRAG_LAST_IN_PAGE);
} }
*frag = next_frag; *frag = next_frag;
...@@ -543,7 +543,7 @@ static void mlx5e_init_frags_partition(struct mlx5e_rq *rq) ...@@ -543,7 +543,7 @@ static void mlx5e_init_frags_partition(struct mlx5e_rq *rq)
} }
if (prev) if (prev)
prev->last_in_page = true; prev->flags |= BIT(MLX5E_WQE_FRAG_LAST_IN_PAGE);
} }
static void mlx5e_init_xsk_buffs(struct mlx5e_rq *rq) static void mlx5e_init_xsk_buffs(struct mlx5e_rq *rq)
......
...@@ -323,7 +323,7 @@ static inline void mlx5e_put_rx_frag(struct mlx5e_rq *rq, ...@@ -323,7 +323,7 @@ static inline void mlx5e_put_rx_frag(struct mlx5e_rq *rq,
struct mlx5e_wqe_frag_info *frag, struct mlx5e_wqe_frag_info *frag,
bool recycle) bool recycle)
{ {
if (frag->last_in_page) if (frag->flags & BIT(MLX5E_WQE_FRAG_LAST_IN_PAGE))
mlx5e_page_release_fragmented(rq, frag->frag_page, recycle); mlx5e_page_release_fragmented(rq, frag->frag_page, recycle);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment