]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drivers: net: qlcnic: Fix potential memory leak in qlcnic_sriov_init()
authorYuan Can <yuancan@huawei.com>
Wed, 7 Dec 2022 08:54:10 +0000 (08:54 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Jan 2023 10:41:13 +0000 (11:41 +0100)
[ Upstream commit 01de1123322e4fe1bbd0fcdf0982511b55519c03 ]

If vp alloc failed in qlcnic_sriov_init(), all previously allocated vp
needs to be freed.

Fixes: 1007f8d3159a ("qlcnic: VF-PF communication channel implementation")
Signed-off-by: Yuan Can <yuancan@huawei.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c

index 400bc2c3f222eb5d0d51ea31968926143dcb1257..7c782df3793dd5a7f3171adb6da8e361b217f929 100644 (file)
@@ -222,6 +222,8 @@ int qlcnic_sriov_init(struct qlcnic_adapter *adapter, int num_vfs)
        return 0;
 
 qlcnic_destroy_async_wq:
+       while (i--)
+               kfree(sriov->vf_info[i].vp);
        destroy_workqueue(bc->bc_async_wq);
 
 qlcnic_destroy_trans_wq: