Message ID | a69739482cca7176d3a466f87bbf5af1250b09bb.1677056384.git.leon@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | c749e3f82a15e10a798bb55f60368ee102c793cb |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,v1] net/mlx5: Fix memory leak in IPsec RoCE creation | expand |
Hello: This patch was applied to netdev/net.git (master) by Paolo Abeni <pabeni@redhat.com>: On Wed, 22 Feb 2023 11:06:40 +0200 you wrote: > From: Patrisious Haddad <phaddad@nvidia.com> > > During IPsec RoCE TX creation a struct for the flow group creation is > allocated, but never freed. Free that struct once it is no longer in use. > > Fixes: 22551e77e550 ("net/mlx5: Configure IPsec steering for egress RoCEv2 traffic") > Signed-off-by: Patrisious Haddad <phaddad@nvidia.com> > Signed-off-by: Leon Romanovsky <leonro@nvidia.com> > > [...] Here is the summary with links: - [net,v1] net/mlx5: Fix memory leak in IPsec RoCE creation https://git.kernel.org/netdev/net/c/c749e3f82a15 You are awesome, thank you!
On 23 Feb 10:30, patchwork-bot+netdevbpf@kernel.org wrote: >Hello: > >This patch was applied to netdev/net.git (master) >by Paolo Abeni <pabeni@redhat.com>: > >On Wed, 22 Feb 2023 11:06:40 +0200 you wrote: >> From: Patrisious Haddad <phaddad@nvidia.com> >> >> During IPsec RoCE TX creation a struct for the flow group creation is >> allocated, but never freed. Free that struct once it is no longer in use. >> >> Fixes: 22551e77e550 ("net/mlx5: Configure IPsec steering for egress RoCEv2 traffic") >> Signed-off-by: Patrisious Haddad <phaddad@nvidia.com> >> Signed-off-by: Leon Romanovsky <leonro@nvidia.com> >> >> [...] > >Here is the summary with links: > - [net,v1] net/mlx5: Fix memory leak in IPsec RoCE creation > https://git.kernel.org/netdev/net/c/c749e3f82a15 > hmm, I don't see this one in net branch, should i resubmit via my queue?
On Thu, 23 Feb 2023 14:49:09 -0800 Saeed Mahameed wrote: > On 23 Feb 10:30, patchwork-bot+netdevbpf@kernel.org wrote: > >Hello: > > > >This patch was applied to netdev/net.git (master) > >by Paolo Abeni <pabeni@redhat.com>: > > > >On Wed, 22 Feb 2023 11:06:40 +0200 you wrote: > >> From: Patrisious Haddad <phaddad@nvidia.com> > >> > >> During IPsec RoCE TX creation a struct for the flow group creation is > >> allocated, but never freed. Free that struct once it is no longer in use. > >> > >> Fixes: 22551e77e550 ("net/mlx5: Configure IPsec steering for egress RoCEv2 traffic") > >> Signed-off-by: Patrisious Haddad <phaddad@nvidia.com> > >> Signed-off-by: Leon Romanovsky <leonro@nvidia.com> > >> > >> [...] > > > >Here is the summary with links: > > - [net,v1] net/mlx5: Fix memory leak in IPsec RoCE creation > > https://git.kernel.org/netdev/net/c/c749e3f82a15 > > > > hmm, I don't see this one in net branch, should i resubmit via my queue? It's there: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=c749e3f82a15e10a798bb55f60368ee102c793cb But keep in mind that master is gone (long live main).
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c index 2c53589b765d..6e3f178d6f84 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c @@ -162,7 +162,7 @@ int mlx5_ipsec_fs_roce_tx_create(struct mlx5_core_dev *mdev, if (IS_ERR(ft)) { err = PTR_ERR(ft); mlx5_core_err(mdev, "Fail to create RoCE IPsec tx ft err=%d\n", err); - return err; + goto free_in; } roce->ft = ft; @@ -174,22 +174,25 @@ int mlx5_ipsec_fs_roce_tx_create(struct mlx5_core_dev *mdev, if (IS_ERR(g)) { err = PTR_ERR(g); mlx5_core_err(mdev, "Fail to create RoCE IPsec tx group err=%d\n", err); - goto fail; + goto destroy_table; } roce->g = g; err = ipsec_fs_roce_tx_rule_setup(mdev, roce, pol_ft); if (err) { mlx5_core_err(mdev, "Fail to create RoCE IPsec tx rules err=%d\n", err); - goto rule_fail; + goto destroy_group; } + kvfree(in); return 0; -rule_fail: +destroy_group: mlx5_destroy_flow_group(roce->g); -fail: +destroy_table: mlx5_destroy_flow_table(ft); +free_in: + kvfree(in); return err; }