diff options
author | Dragos Tatulea <dtatulea@nvidia.com> | 2023-02-21 18:24:09 +0300 |
---|---|---|
committer | Saeed Mahameed <saeedm@nvidia.com> | 2023-03-28 23:43:58 +0300 |
commit | 625dff29df3957f8a864c05d21a327231ebeff94 (patch) | |
tree | f8d7f5c2b3d9c8cee83004495efa64657c50834b /drivers/net | |
parent | 4c2a1323680709078736a2886c754004e9fe42e6 (diff) | |
download | linux-625dff29df3957f8a864c05d21a327231ebeff94.tar.xz |
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: Dragos Tatulea <dtatulea@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en.h | 6 | ||||
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 4 | ||||
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 2 |
3 files changed, 8 insertions, 4 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h index 566ddf7a7aa9..9ef4b7163e5a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h @@ -605,13 +605,17 @@ struct mlx5e_frag_page { u16 frags; }; +enum mlx5e_wqe_frag_flag { + MLX5E_WQE_FRAG_LAST_IN_PAGE, +}; + struct mlx5e_wqe_frag_info { union { struct mlx5e_frag_page *frag_page; struct xdp_buff **xskp; }; u32 offset; - bool last_in_page; + u8 flags; }; union mlx5e_alloc_units { diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index 53eef689f225..bb1cbf008876 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -532,7 +532,7 @@ static void mlx5e_init_frags_partition(struct mlx5e_rq *rq) next_frag.frag_page++; next_frag.offset = 0; if (prev) - prev->last_in_page = true; + prev->flags |= BIT(MLX5E_WQE_FRAG_LAST_IN_PAGE); } *frag = next_frag; @@ -543,7 +543,7 @@ static void mlx5e_init_frags_partition(struct mlx5e_rq *rq) } 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) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c index 73bc373bf27d..f98212596c1e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c @@ -323,7 +323,7 @@ static inline void mlx5e_put_rx_frag(struct mlx5e_rq *rq, struct mlx5e_wqe_frag_info *frag, 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); } |