]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net/mlx5e: Let kTLS RX get async ICOSQ param in napi poll
authorTariq Toukan <tariqt@nvidia.com>
Thu, 14 May 2026 11:10:38 +0000 (14:10 +0300)
committerJakub Kicinski <kuba@kernel.org>
Tue, 19 May 2026 01:45:49 +0000 (18:45 -0700)
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 <tariqt@nvidia.com>
Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
Link: https://patch.msgid.link/20260514111038.338251-3-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h
drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c

index ac8168ebb38c501830522a7639c2874b160f4954..bca45679e2016bf92ed0545c0c09f08db9e9772a 100644 (file)
@@ -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;
 
index 4022c7e78a2e8bca635be8b65ff1e1aec5ac2f14..93bd383a23d8c2c90b7d4dbed406eab6817e3387 100644 (file)
@@ -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;
 }
index 8df5bc5d0537de1087a59f5af1c10fdd0b36959d..143890af516a6a9a09185f9b4d5d69e0c1f713ac 100644 (file)
@@ -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);