i40e: Fix memory leak in i40e_probe
authorKeita Suzuki <keitasuzuki.park@sslab.ics.keio.ac.jp>
Fri, 30 Oct 2020 07:14:30 +0000 (07:14 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Mar 2021 16:03:44 +0000 (17:03 +0100)
[ Upstream commit 58cab46c622d6324e47bd1c533693c94498e4172 ]

Struct i40e_veb is allocated in function i40e_setup_pf_switch, and
stored to an array field veb inside struct i40e_pf. However when
i40e_setup_misc_vector fails, this memory leaks.

Fix this by calling exit and teardown functions.

Signed-off-by: Keita Suzuki <keitasuzuki.park@sslab.ics.keio.ac.jp>
Tested-by: Tony Brelinski <tonyx.brelinski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/intel/i40e/i40e_main.c

index 0604b5aaad86f0f95030e3347b02529dd504b4bc..58211590229b16073dcaaea9762c446a03755d9a 100644 (file)
@@ -15142,6 +15142,8 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                if (err) {
                        dev_info(&pdev->dev,
                                 "setup of misc vector failed: %d\n", err);
+                       i40e_cloud_filter_exit(pf);
+                       i40e_fdir_teardown(pf);
                        goto err_vsis;
                }
        }