net/mlx5: IPsec, fix memory leak at mlx5_fpga_ipsec_delete_sa_ctx
authorRaed Salem <raeds@mellanox.com>
Wed, 23 Oct 2019 13:41:21 +0000 (16:41 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 11 Feb 2020 12:35:50 +0000 (04:35 -0800)
[ Upstream commit 08db2cf577487f5123aebcc2f913e0b8a2c14b43 ]

SA context is allocated at mlx5_fpga_ipsec_create_sa_ctx,
however the counterpart mlx5_fpga_ipsec_delete_sa_ctx function
nullifies sa_ctx pointer without freeing the memory allocated,
hence the memory leak.

Fix by free SA context when the SA is released.

Fixes: d6c4f0298cec ("net/mlx5: Refactor accel IPSec code")
Signed-off-by: Raed Salem <raeds@mellanox.com>
Reviewed-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c

index e62a9b1..72232e5 100644 (file)
@@ -850,6 +850,7 @@ void mlx5_fpga_ipsec_delete_sa_ctx(void *context)
        mutex_lock(&fpga_xfrm->lock);
        if (!--fpga_xfrm->num_rules) {
                mlx5_fpga_ipsec_release_sa_ctx(fpga_xfrm->sa_ctx);
+               kfree(fpga_xfrm->sa_ctx);
                fpga_xfrm->sa_ctx = NULL;
        }
        mutex_unlock(&fpga_xfrm->lock);