net/mlx5e: MACsec, fix Tx SA active field update
Currently during update Tx security association (SA) flow, the Tx SA active state is updated only if the Tx SA in question is the same SA that the MACsec interface is using for Tx,in consequence when the MACsec interface chose to work with this Tx SA later, where this SA for example should have been updated to active state and it was not, the relevant Tx SA HW context won't be installed, hence the MACSec flow won't be offloaded. Fix by update Tx SA active state as part of update flow regardless whether the SA in question is the same Tx SA used by the MACsec interface. Fixes: 8ff0ac5be144 ("net/mlx5: Add MACsec offload Tx command support") Signed-off-by: Raed Salem <raeds@nvidia.com> Reviewed-by: Emeel Hakim <ehakim@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
This commit is contained in:
parent
c0071be0e1
commit
7c5578e299
@ -602,6 +602,7 @@ static int mlx5e_macsec_upd_txsa(struct macsec_context *ctx)
|
||||
if (tx_sa->active == ctx_tx_sa->active)
|
||||
goto out;
|
||||
|
||||
tx_sa->active = ctx_tx_sa->active;
|
||||
if (tx_sa->assoc_num != tx_sc->encoding_sa)
|
||||
goto out;
|
||||
|
||||
@ -617,8 +618,6 @@ static int mlx5e_macsec_upd_txsa(struct macsec_context *ctx)
|
||||
|
||||
mlx5e_macsec_cleanup_sa(macsec, tx_sa, true);
|
||||
}
|
||||
|
||||
tx_sa->active = ctx_tx_sa->active;
|
||||
out:
|
||||
mutex_unlock(&macsec->lock);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user