Skip to content

Commit 16bccba

Browse files
rleonSaeed Mahameed
authored andcommitted
net/mlx5e: Remove optimization which prevented update of ESN state
aso->use_cache variable introduced in commit 8c582dd ("net/mlx5e: Handle hardware IPsec limits events") was an optimization to skip recurrent calls to mlx5e_ipsec_aso_query(). Such calls are possible when lifetime event is generated: -> mlx5e_ipsec_handle_event() -> mlx5e_ipsec_aso_query() - first call -> xfrm_state_check_expire() -> mlx5e_xfrm_update_curlft() -> mlx5e_ipsec_aso_query() - second call However, such optimization not really effective as mlx5e_ipsec_aso_query() is needed to be called for update ESN anyway, which was missed due to misplaced use_cache assignment. Fixes: cee137a ("net/mlx5e: Handle ESN update events") Reviewed-by: Jianbo Liu <[email protected]> Signed-off-by: Leon Romanovsky <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]>
1 parent ffa99b5 commit 16bccba

File tree

2 files changed

+0
-10
lines changed

2 files changed

+0
-10
lines changed

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,6 @@ struct mlx5e_ipsec_aso {
122122
u8 ctx[MLX5_ST_SZ_BYTES(ipsec_aso)];
123123
dma_addr_t dma_addr;
124124
struct mlx5_aso *aso;
125-
/* IPsec ASO caches data on every query call,
126-
* so in nested calls, we can use this boolean to save
127-
* recursive calls to mlx5e_ipsec_aso_query()
128-
*/
129-
u8 use_cache : 1;
130125
};
131126

132127
struct mlx5e_ipsec {

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_offload.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,6 @@ static void mlx5e_ipsec_handle_event(struct work_struct *_work)
320320
if (ret)
321321
goto unlock;
322322

323-
aso->use_cache = true;
324323
if (attrs->esn_trigger &&
325324
!MLX5_GET(ipsec_aso, aso->ctx, esn_event_arm)) {
326325
u32 mode_param = MLX5_GET(ipsec_aso, aso->ctx, mode_parameter);
@@ -333,7 +332,6 @@ static void mlx5e_ipsec_handle_event(struct work_struct *_work)
333332
!MLX5_GET(ipsec_aso, aso->ctx, hard_lft_arm) ||
334333
!MLX5_GET(ipsec_aso, aso->ctx, remove_flow_enable))
335334
xfrm_state_check_expire(sa_entry->x);
336-
aso->use_cache = false;
337335

338336
unlock:
339337
spin_unlock(&sa_entry->x->lock);
@@ -458,9 +456,6 @@ int mlx5e_ipsec_aso_query(struct mlx5e_ipsec_sa_entry *sa_entry,
458456
u8 ds_cnt;
459457

460458
lockdep_assert_held(&sa_entry->x->lock);
461-
if (aso->use_cache)
462-
return 0;
463-
464459
res = &mdev->mlx5e_res.hw_objs;
465460

466461
memset(aso->ctx, 0, sizeof(aso->ctx));

0 commit comments

Comments
 (0)