Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

net/mlx5: Fix memory leak in IPsec RoCE creation

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>
Link: https://lore.kernel.org/r/a69739482cca7176d3a466f87bbf5af1250b09bb.1677056384.git.leon@kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>

authored by

Patrisious Haddad and committed by
Paolo Abeni
c749e3f8 44bd0394

+8 -5
+8 -5
drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c
··· 162 162 if (IS_ERR(ft)) { 163 163 err = PTR_ERR(ft); 164 164 mlx5_core_err(mdev, "Fail to create RoCE IPsec tx ft err=%d\n", err); 165 - return err; 165 + goto free_in; 166 166 } 167 167 168 168 roce->ft = ft; ··· 174 174 if (IS_ERR(g)) { 175 175 err = PTR_ERR(g); 176 176 mlx5_core_err(mdev, "Fail to create RoCE IPsec tx group err=%d\n", err); 177 - goto fail; 177 + goto destroy_table; 178 178 } 179 179 roce->g = g; 180 180 181 181 err = ipsec_fs_roce_tx_rule_setup(mdev, roce, pol_ft); 182 182 if (err) { 183 183 mlx5_core_err(mdev, "Fail to create RoCE IPsec tx rules err=%d\n", err); 184 - goto rule_fail; 184 + goto destroy_group; 185 185 } 186 186 187 + kvfree(in); 187 188 return 0; 188 189 189 - rule_fail: 190 + destroy_group: 190 191 mlx5_destroy_flow_group(roce->g); 191 - fail: 192 + destroy_table: 192 193 mlx5_destroy_flow_table(ft); 194 + free_in: 195 + kvfree(in); 193 196 return err; 194 197 } 195 198