From: Emeel Hakim <ehakim@nvidia.com>
Date: Wed, 21 Sep 2022 11:10:47 -0700
Subject: net/mlx5e: Fix MACsec initialization error path
Patch-mainline: v6.1-rc1
Git-commit: 6c5e0b25db3af34c4a0c7076f84a2adf0fee17a0
References: jsc#PED-1549
Currently MACsec initialization error path does not
destroy sci hash table in case of failure.
Fix by destroying hash table in case of failure.
Fixes: 9515978eee0b ("net/mlx5e: Implement MACsec Tx data path using MACsec skb_metadata_dst")
Signed-off-by: Emeel Hakim <ehakim@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
---
drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
@@ -1285,7 +1285,7 @@ int mlx5e_macsec_init(struct mlx5e_priv
if (err) {
mlx5_core_err(mdev, "MACsec offload: Failed to init SCI hash table, err=%d\n",
err);
- goto err_out;
+ goto err_hash;
}
xa_init_flags(&macsec->sc_xarray, XA_FLAGS_ALLOC1);
@@ -1307,6 +1307,8 @@ int mlx5e_macsec_init(struct mlx5e_priv
return 0;
err_out:
+ rhashtable_destroy(&macsec->sci_hash);
+err_hash:
mlx5_core_dealloc_pd(priv->mdev, macsec->aso_pdn);
err_pd:
kfree(macsec);