diff options
author | Dotan Barak <dotanb@dev.mellanox.co.il> | 2014-05-29 09:30:59 -0400 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2014-05-30 00:12:58 -0400 |
commit | b38f2879b7d2d51747de2ea9062c698a6ac64cb1 (patch) | |
tree | 28a4ed7653cbb00160fc8a2b8bc46d28b07a6fc3 | |
parent | bfdfcfee3c9281e9cd28c0b08235aba1762504a6 (diff) |
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: Dotan Barak <dotanb@dev.mellanox.co.il>
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/main.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c index 7cf9dadcb471..12a7ee2e6098 100644 --- a/drivers/net/ethernet/mellanox/mlx4/main.c +++ b/drivers/net/ethernet/mellanox/mlx4/main.c | |||
@@ -1696,6 +1696,13 @@ unmap_bf: | |||
1696 | unmap_internal_clock(dev); | 1696 | unmap_internal_clock(dev); |
1697 | unmap_bf_area(dev); | 1697 | unmap_bf_area(dev); |
1698 | 1698 | ||
1699 | if (mlx4_is_slave(dev)) { | ||
1700 | kfree(dev->caps.qp0_tunnel); | ||
1701 | kfree(dev->caps.qp0_proxy); | ||
1702 | kfree(dev->caps.qp1_tunnel); | ||
1703 | kfree(dev->caps.qp1_proxy); | ||
1704 | } | ||
1705 | |||
1699 | err_close: | 1706 | err_close: |
1700 | if (mlx4_is_slave(dev)) | 1707 | if (mlx4_is_slave(dev)) |
1701 | mlx4_slave_exit(dev); | 1708 | mlx4_slave_exit(dev); |
@@ -2565,6 +2572,13 @@ err_master_mfunc: | |||
2565 | if (mlx4_is_master(dev)) | 2572 | if (mlx4_is_master(dev)) |
2566 | mlx4_multi_func_cleanup(dev); | 2573 | mlx4_multi_func_cleanup(dev); |
2567 | 2574 | ||
2575 | if (mlx4_is_slave(dev)) { | ||
2576 | kfree(dev->caps.qp0_tunnel); | ||
2577 | kfree(dev->caps.qp0_proxy); | ||
2578 | kfree(dev->caps.qp1_tunnel); | ||
2579 | kfree(dev->caps.qp1_proxy); | ||
2580 | } | ||
2581 | |||
2568 | err_close: | 2582 | err_close: |
2569 | if (dev->flags & MLX4_FLAG_MSI_X) | 2583 | if (dev->flags & MLX4_FLAG_MSI_X) |
2570 | pci_disable_msix(pdev); | 2584 | pci_disable_msix(pdev); |