diff options
author | David S. Miller <davem@davemloft.net> | 2017-05-09 11:22:48 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-05-09 11:22:48 -0400 |
commit | cf680179c111b1901e83bdd53997fb09dafff967 (patch) | |
tree | f0bd6c0d814a9a095f7738f609d5a6d6f37d0acc | |
parent | 4c19e2f2a86f2281014c1e06785715ad9864c9cc (diff) | |
parent | 83bd5118a119cabba47e194bba96641e303aadff (diff) |
Merge branch 'mlx4-misc-fixes'
Tariq Toukan says:
====================
mlx4 misc fixes
This patchset contains misc bug fixes from the team
to the mlx4 Core and Eth drivers.
Series generated against net commit:
32f1bc0f3d26 Revert "ipv4: restore rt->fi for reference counting"
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/cmd.c | 14 | ||||
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 5 | ||||
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/en_rx.c | 3 | ||||
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | 2 |
4 files changed, 19 insertions, 5 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/cmd.c b/drivers/net/ethernet/mellanox/mlx4/cmd.c index 0e0fa7030565..c1af47e45d3f 100644 --- a/drivers/net/ethernet/mellanox/mlx4/cmd.c +++ b/drivers/net/ethernet/mellanox/mlx4/cmd.c | |||
@@ -1789,9 +1789,17 @@ static int mlx4_master_process_vhcr(struct mlx4_dev *dev, int slave, | |||
1789 | } | 1789 | } |
1790 | 1790 | ||
1791 | if (err) { | 1791 | if (err) { |
1792 | if (!(dev->persist->state & MLX4_DEVICE_STATE_INTERNAL_ERROR)) | 1792 | if (!(dev->persist->state & MLX4_DEVICE_STATE_INTERNAL_ERROR)) { |
1793 | mlx4_warn(dev, "vhcr command:0x%x slave:%d failed with error:%d, status %d\n", | 1793 | if (vhcr->op == MLX4_CMD_ALLOC_RES && |
1794 | vhcr->op, slave, vhcr->errno, err); | 1794 | (vhcr->in_modifier & 0xff) == RES_COUNTER && |
1795 | err == -EDQUOT) | ||
1796 | mlx4_dbg(dev, | ||
1797 | "Unable to allocate counter for slave %d (%d)\n", | ||
1798 | slave, err); | ||
1799 | else | ||
1800 | mlx4_warn(dev, "vhcr command:0x%x slave:%d failed with error:%d, status %d\n", | ||
1801 | vhcr->op, slave, vhcr->errno, err); | ||
1802 | } | ||
1795 | vhcr_cmd->status = mlx4_errno_to_status(err); | 1803 | vhcr_cmd->status = mlx4_errno_to_status(err); |
1796 | goto out_status; | 1804 | goto out_status; |
1797 | } | 1805 | } |
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c index ffbcb27c05e5..ae5fdc2df654 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | |||
@@ -1562,6 +1562,11 @@ static int mlx4_en_flow_replace(struct net_device *dev, | |||
1562 | qpn = priv->drop_qp.qpn; | 1562 | qpn = priv->drop_qp.qpn; |
1563 | else if (cmd->fs.ring_cookie & EN_ETHTOOL_QP_ATTACH) { | 1563 | else if (cmd->fs.ring_cookie & EN_ETHTOOL_QP_ATTACH) { |
1564 | qpn = cmd->fs.ring_cookie & (EN_ETHTOOL_QP_ATTACH - 1); | 1564 | qpn = cmd->fs.ring_cookie & (EN_ETHTOOL_QP_ATTACH - 1); |
1565 | if (qpn < priv->rss_map.base_qpn || | ||
1566 | qpn >= priv->rss_map.base_qpn + priv->rx_ring_num) { | ||
1567 | en_warn(priv, "rxnfc: QP (0x%x) doesn't exist\n", qpn); | ||
1568 | return -EINVAL; | ||
1569 | } | ||
1565 | } else { | 1570 | } else { |
1566 | if (cmd->fs.ring_cookie >= priv->rx_ring_num) { | 1571 | if (cmd->fs.ring_cookie >= priv->rx_ring_num) { |
1567 | en_warn(priv, "rxnfc: RX ring (%llu) doesn't exist\n", | 1572 | en_warn(priv, "rxnfc: RX ring (%llu) doesn't exist\n", |
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/drivers/net/ethernet/mellanox/mlx4/en_rx.c index aa074e57ce06..77abd1813047 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c | |||
@@ -997,7 +997,8 @@ void mlx4_en_calc_rx_buf(struct net_device *dev) | |||
997 | en_dbg(DRV, priv, "Rx buffer scatter-list (effective-mtu:%d num_frags:%d):\n", | 997 | en_dbg(DRV, priv, "Rx buffer scatter-list (effective-mtu:%d num_frags:%d):\n", |
998 | eff_mtu, priv->num_frags); | 998 | eff_mtu, priv->num_frags); |
999 | for (i = 0; i < priv->num_frags; i++) { | 999 | for (i = 0; i < priv->num_frags; i++) { |
1000 | en_err(priv, | 1000 | en_dbg(DRV, |
1001 | priv, | ||
1001 | " frag:%d - size:%d stride:%d\n", | 1002 | " frag:%d - size:%d stride:%d\n", |
1002 | i, | 1003 | i, |
1003 | priv->frag_info[i].frag_size, | 1004 | priv->frag_info[i].frag_size, |
diff --git a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c index 4aa29ee93013..07516545474f 100644 --- a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c +++ b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | |||
@@ -311,7 +311,7 @@ static inline int mlx4_grant_resource(struct mlx4_dev *dev, int slave, | |||
311 | struct mlx4_priv *priv = mlx4_priv(dev); | 311 | struct mlx4_priv *priv = mlx4_priv(dev); |
312 | struct resource_allocator *res_alloc = | 312 | struct resource_allocator *res_alloc = |
313 | &priv->mfunc.master.res_tracker.res_alloc[res_type]; | 313 | &priv->mfunc.master.res_tracker.res_alloc[res_type]; |
314 | int err = -EINVAL; | 314 | int err = -EDQUOT; |
315 | int allocated, free, reserved, guaranteed, from_free; | 315 | int allocated, free, reserved, guaranteed, from_free; |
316 | int from_rsvd; | 316 | int from_rsvd; |
317 | 317 | ||