diff options
author | Eran Ben Elisha <eranbe@mellanox.com> | 2015-06-25 04:29:41 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-07-10 12:49:30 -0400 |
commit | f3f6617f6b90f2e27ee7362f8a2f4063c7eac6a7 (patch) | |
tree | 6bb6343ba57e556e700d9bfc471b5d2a1025696e /drivers/net | |
parent | 66634bb1c4f1eda70583eddaf8c5e980f05a8fb9 (diff) |
net/mlx4_en: Release TX QP when destroying TX ring
[ Upstream commit 0eb08514fdbdcd16fd6870680cd638f203662e9d ]
TX ring QP wasn't released at mlx4_en_destroy_tx_ring. Instead, the code
used the deprecated base_tx_qpn field. Move TX QP release to
mlx4_en_destroy_tx_ring and remove the base_tx_qpn field.
Fixes: ddae0349fdb7 ('net/mlx4: Change QP allocation scheme')
Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 4 | ||||
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/en_tx.c | 1 | ||||
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 1 |
3 files changed, 1 insertions, 5 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c index cf467a9f6cc7..a5a0b8420d26 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c | |||
@@ -1973,10 +1973,6 @@ void mlx4_en_free_resources(struct mlx4_en_priv *priv) | |||
1973 | mlx4_en_destroy_cq(priv, &priv->rx_cq[i]); | 1973 | mlx4_en_destroy_cq(priv, &priv->rx_cq[i]); |
1974 | } | 1974 | } |
1975 | 1975 | ||
1976 | if (priv->base_tx_qpn) { | ||
1977 | mlx4_qp_release_range(priv->mdev->dev, priv->base_tx_qpn, priv->tx_ring_num); | ||
1978 | priv->base_tx_qpn = 0; | ||
1979 | } | ||
1980 | } | 1976 | } |
1981 | 1977 | ||
1982 | int mlx4_en_alloc_resources(struct mlx4_en_priv *priv) | 1978 | int mlx4_en_alloc_resources(struct mlx4_en_priv *priv) |
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c index 7bed3a88579f..0ab298f036a8 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c | |||
@@ -180,6 +180,7 @@ void mlx4_en_destroy_tx_ring(struct mlx4_en_priv *priv, | |||
180 | mlx4_bf_free(mdev->dev, &ring->bf); | 180 | mlx4_bf_free(mdev->dev, &ring->bf); |
181 | mlx4_qp_remove(mdev->dev, &ring->qp); | 181 | mlx4_qp_remove(mdev->dev, &ring->qp); |
182 | mlx4_qp_free(mdev->dev, &ring->qp); | 182 | mlx4_qp_free(mdev->dev, &ring->qp); |
183 | mlx4_qp_release_range(priv->mdev->dev, ring->qpn, 1); | ||
183 | mlx4_en_unmap_buffer(&ring->wqres.buf); | 184 | mlx4_en_unmap_buffer(&ring->wqres.buf); |
184 | mlx4_free_hwq_res(mdev->dev, &ring->wqres, ring->buf_size); | 185 | mlx4_free_hwq_res(mdev->dev, &ring->wqres, ring->buf_size); |
185 | kfree(ring->bounce_buf); | 186 | kfree(ring->bounce_buf); |
diff --git a/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h b/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h index d021f079f181..9a4b3807eb0a 100644 --- a/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h +++ b/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | |||
@@ -579,7 +579,6 @@ struct mlx4_en_priv { | |||
579 | int vids[128]; | 579 | int vids[128]; |
580 | bool wol; | 580 | bool wol; |
581 | struct device *ddev; | 581 | struct device *ddev; |
582 | int base_tx_qpn; | ||
583 | struct hlist_head mac_hash[MLX4_EN_MAC_HASH_SIZE]; | 582 | struct hlist_head mac_hash[MLX4_EN_MAC_HASH_SIZE]; |
584 | struct hwtstamp_config hwtstamp_config; | 583 | struct hwtstamp_config hwtstamp_config; |
585 | 584 | ||