Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b38f2879 authored by Dotan Barak's avatar Dotan Barak Committed by Roland Dreier
Browse files

mlx4_core: Fix memory leaks in SR-IOV error paths



Fix a few memory leaks that happen if errors happen in SR-IOV mode.

Signed-off-by: default avatarDotan Barak <dotanb@dev.mellanox.co.il>
Signed-off-by: default avatarJack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
parent bfdfcfee
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -1696,6 +1696,13 @@ unmap_bf:
	unmap_internal_clock(dev);
	unmap_bf_area(dev);

	if (mlx4_is_slave(dev)) {
		kfree(dev->caps.qp0_tunnel);
		kfree(dev->caps.qp0_proxy);
		kfree(dev->caps.qp1_tunnel);
		kfree(dev->caps.qp1_proxy);
	}

err_close:
	if (mlx4_is_slave(dev))
		mlx4_slave_exit(dev);
@@ -2565,6 +2572,13 @@ err_master_mfunc:
	if (mlx4_is_master(dev))
		mlx4_multi_func_cleanup(dev);

	if (mlx4_is_slave(dev)) {
		kfree(dev->caps.qp0_tunnel);
		kfree(dev->caps.qp0_proxy);
		kfree(dev->caps.qp1_tunnel);
		kfree(dev->caps.qp1_proxy);
	}

err_close:
	if (dev->flags & MLX4_FLAG_MSI_X)
		pci_disable_msix(pdev);