mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-29 22:02:02 +00:00
octeontx2-pf: mcs: Do not reset PN while updating secy
[ Upstream commit3c99bace4a
] After creating SecYs, SCs and SAs a SecY can be modified to change attributes like validation mode, protect frames mode etc. During this SecY update, packet number is reset to initial user given value by mistake. Hence do not reset PN when updating SecY parameters. Fixes:c54ffc7360
("octeontx2-pf: mcs: Introduce MACSEC hardware offloading") Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Signed-off-by: Geetha sowjanya <gakula@marvell.com> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
fd59ec1455
commit
a78b922d11
1 changed files with 10 additions and 5 deletions
|
@ -1134,6 +1134,7 @@ static int cn10k_mdo_upd_secy(struct macsec_context *ctx)
|
|||
struct macsec_secy *secy = ctx->secy;
|
||||
struct macsec_tx_sa *sw_tx_sa;
|
||||
struct cn10k_mcs_txsc *txsc;
|
||||
bool active;
|
||||
u8 sa_num;
|
||||
int err;
|
||||
|
||||
|
@ -1141,15 +1142,19 @@ static int cn10k_mdo_upd_secy(struct macsec_context *ctx)
|
|||
if (!txsc)
|
||||
return -ENOENT;
|
||||
|
||||
txsc->encoding_sa = secy->tx_sc.encoding_sa;
|
||||
|
||||
sa_num = txsc->encoding_sa;
|
||||
sw_tx_sa = rcu_dereference_bh(secy->tx_sc.sa[sa_num]);
|
||||
/* Encoding SA got changed */
|
||||
if (txsc->encoding_sa != secy->tx_sc.encoding_sa) {
|
||||
txsc->encoding_sa = secy->tx_sc.encoding_sa;
|
||||
sa_num = txsc->encoding_sa;
|
||||
sw_tx_sa = rcu_dereference_bh(secy->tx_sc.sa[sa_num]);
|
||||
active = sw_tx_sa ? sw_tx_sa->active : false;
|
||||
cn10k_mcs_link_tx_sa2sc(pfvf, secy, txsc, sa_num, active);
|
||||
}
|
||||
|
||||
if (netif_running(secy->netdev)) {
|
||||
cn10k_mcs_sync_stats(pfvf, secy, txsc);
|
||||
|
||||
err = cn10k_mcs_secy_tx_cfg(pfvf, secy, txsc, sw_tx_sa, sa_num);
|
||||
err = cn10k_mcs_secy_tx_cfg(pfvf, secy, txsc, NULL, 0);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue