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); |
