Do not pass channel just to extract the async ICOSQ. It's already extracted, pass it. Re-order the checks in mlx5e_ktls_rx_pending_resync_list to optimize the common flow. Signed-off-by: Tariq Toukan Reviewed-by: Dragos Tatulea --- .../ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c | 5 +---- .../ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h | 12 ++++++------ drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c | 5 +++-- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c index ac8168ebb38c..bca45679e201 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c @@ -744,17 +744,14 @@ void mlx5e_ktls_del_rx(struct net_device *netdev, struct tls_context *tls_ctx) mlx5e_ktls_priv_rx_put(priv_rx); } -bool mlx5e_ktls_rx_handle_resync_list(struct mlx5e_channel *c, int budget) +bool mlx5e_ktls_rx_handle_resync_list(struct mlx5e_icosq *sq, int budget) { struct mlx5e_ktls_offload_context_rx *priv_rx, *tmp; struct mlx5e_ktls_resync_resp *ktls_resync; struct mlx5_wqe_ctrl_seg *db_cseg; - struct mlx5e_icosq *sq; LIST_HEAD(local_list); int i, j; - sq = c->async_icosq; - if (unlikely(!test_bit(MLX5E_SQ_STATE_ENABLED, &sq->state))) return false; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h index 4022c7e78a2e..93bd383a23d8 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h @@ -45,13 +45,13 @@ mlx5e_ktls_tx_try_handle_resync_dump_comp(struct mlx5e_txqsq *sq, return false; } -bool mlx5e_ktls_rx_handle_resync_list(struct mlx5e_channel *c, int budget); +bool mlx5e_ktls_rx_handle_resync_list(struct mlx5e_icosq *sq, int budget); static inline bool -mlx5e_ktls_rx_pending_resync_list(struct mlx5e_channel *c, int budget) +mlx5e_ktls_rx_pending_resync_list(struct mlx5e_icosq *sq, int budget) { - return budget && test_bit(MLX5E_SQ_STATE_PENDING_TLS_RX_RESYNC, - &c->async_icosq->state); + return test_bit(MLX5E_SQ_STATE_PENDING_TLS_RX_RESYNC, &sq->state) && + budget; } static inline void @@ -70,13 +70,13 @@ mlx5e_ktls_tx_try_handle_resync_dump_comp(struct mlx5e_txqsq *sq, } static inline bool -mlx5e_ktls_rx_handle_resync_list(struct mlx5e_channel *c, int budget) +mlx5e_ktls_rx_handle_resync_list(struct mlx5e_icosq *sq, int budget) { return false; } static inline bool -mlx5e_ktls_rx_pending_resync_list(struct mlx5e_channel *c, int budget) +mlx5e_ktls_rx_pending_resync_list(struct mlx5e_icosq *sq, int budget) { return false; } diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c index 8df5bc5d0537..143890af516a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c @@ -189,8 +189,9 @@ int mlx5e_napi_poll(struct napi_struct *napi, int budget) &aicosq->state); /* Keep after async ICOSQ CQ poll */ - if (unlikely(mlx5e_ktls_rx_pending_resync_list(c, budget))) - busy |= mlx5e_ktls_rx_handle_resync_list(c, budget); + if (unlikely(mlx5e_ktls_rx_pending_resync_list(aicosq, budget))) + busy |= mlx5e_ktls_rx_handle_resync_list(aicosq, + budget); if (xsk_open) { busy |= mlx5e_poll_xdpsq_cq(&xsksq->cq); -- 2.44.0