aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorIdo Shamay <idos@mellanox.com>2015-04-02 09:31:17 -0400
committerDavid S. Miller <davem@davemloft.net>2015-04-02 16:25:03 -0400
commit3742cc65512cd4897a63dce94104f9a6e74997a0 (patch)
tree195f022158308db2349624e424c6a65b754ebc72 /drivers/net
parentcda373f4849d5dd6fedceb4aeba35682a0e1a833 (diff)
net/mlx4: Warn users of depracated QoS Firmware
A new capability bit was introduced in the past to to differ devices using the QoS ETS feature. The old was deprecated since then. If driver sees device which set only the old capabilty, it will print warning to user suggesting to upgrade the FW. Signed-off-by: Ido Shamay <idos@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_netdev.c2
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/fw.c7
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/main.c8
3 files changed, 14 insertions, 3 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
index 2a5df0aa2228..be9e07a72193 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
@@ -2814,7 +2814,7 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port,
2814 priv->msg_enable = MLX4_EN_MSG_LEVEL; 2814 priv->msg_enable = MLX4_EN_MSG_LEVEL;
2815#ifdef CONFIG_MLX4_EN_DCB 2815#ifdef CONFIG_MLX4_EN_DCB
2816 if (!mlx4_is_slave(priv->mdev->dev)) { 2816 if (!mlx4_is_slave(priv->mdev->dev)) {
2817 if (mdev->dev->caps.flags & MLX4_DEV_CAP_FLAG_SET_ETH_SCHED) { 2817 if (mdev->dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_ETS_CFG) {
2818 dev->dcbnl_ops = &mlx4_en_dcbnl_ops; 2818 dev->dcbnl_ops = &mlx4_en_dcbnl_ops;
2819 } else { 2819 } else {
2820 en_info(priv, "enabling only PFC DCB ops\n"); 2820 en_info(priv, "enabling only PFC DCB ops\n");
diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c b/drivers/net/ethernet/mellanox/mlx4/fw.c
index 94e857e39063..16bbd6cdff6c 100644
--- a/drivers/net/ethernet/mellanox/mlx4/fw.c
+++ b/drivers/net/ethernet/mellanox/mlx4/fw.c
@@ -149,6 +149,7 @@ static void dump_dev_cap_flags2(struct mlx4_dev *dev, u64 flags)
149 [23] = "QP rate limiting support", 149 [23] = "QP rate limiting support",
150 [24] = "Ethernet Flow control statistics support", 150 [24] = "Ethernet Flow control statistics support",
151 [25] = "Granular QoS per VF support", 151 [25] = "Granular QoS per VF support",
152 [26] = "Port ETS Scheduler support",
152 }; 153 };
153 int i; 154 int i;
154 155
@@ -900,6 +901,8 @@ int mlx4_QUERY_DEV_CAP(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
900 MLX4_GET(field, outbox, QUERY_DEV_CAP_VXLAN); 901 MLX4_GET(field, outbox, QUERY_DEV_CAP_VXLAN);
901 if (field & 1<<3) 902 if (field & 1<<3)
902 dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_VXLAN_OFFLOADS; 903 dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_VXLAN_OFFLOADS;
904 if (field & (1 << 5))
905 dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_ETS_CFG;
903 MLX4_GET(dev_cap->max_icm_sz, outbox, 906 MLX4_GET(dev_cap->max_icm_sz, outbox,
904 QUERY_DEV_CAP_MAX_ICM_SZ_OFFSET); 907 QUERY_DEV_CAP_MAX_ICM_SZ_OFFSET);
905 if (dev_cap->flags & MLX4_DEV_CAP_FLAG_COUNTERS) 908 if (dev_cap->flags & MLX4_DEV_CAP_FLAG_COUNTERS)
@@ -1157,9 +1160,9 @@ int mlx4_QUERY_DEV_CAP_wrapper(struct mlx4_dev *dev, int slave,
1157 field &= 0x7f; 1160 field &= 0x7f;
1158 MLX4_PUT(outbox->buf, field, QUERY_DEV_CAP_CQ_TS_SUPPORT_OFFSET); 1161 MLX4_PUT(outbox->buf, field, QUERY_DEV_CAP_CQ_TS_SUPPORT_OFFSET);
1159 1162
1160 /* For guests, disable vxlan tunneling */ 1163 /* For guests, disable vxlan tunneling and QoS support */
1161 MLX4_GET(field, outbox->buf, QUERY_DEV_CAP_VXLAN); 1164 MLX4_GET(field, outbox->buf, QUERY_DEV_CAP_VXLAN);
1162 field &= 0xf7; 1165 field &= 0xd7;
1163 MLX4_PUT(outbox->buf, field, QUERY_DEV_CAP_VXLAN); 1166 MLX4_PUT(outbox->buf, field, QUERY_DEV_CAP_VXLAN);
1164 1167
1165 /* For guests, report Blueflame disabled */ 1168 /* For guests, report Blueflame disabled */
diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
index ee0a67069b57..3becad37aec8 100644
--- a/drivers/net/ethernet/mellanox/mlx4/main.c
+++ b/drivers/net/ethernet/mellanox/mlx4/main.c
@@ -528,6 +528,14 @@ static int mlx4_dev_cap(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
528 dev->caps.alloc_res_qp_mask = 528 dev->caps.alloc_res_qp_mask =
529 (dev->caps.bf_reg_size ? MLX4_RESERVE_ETH_BF_QP : 0) | 529 (dev->caps.bf_reg_size ? MLX4_RESERVE_ETH_BF_QP : 0) |
530 MLX4_RESERVE_A0_QP; 530 MLX4_RESERVE_A0_QP;
531
532 if (!(dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_ETS_CFG) &&
533 dev->caps.flags & MLX4_DEV_CAP_FLAG_SET_ETH_SCHED) {
534 mlx4_warn(dev, "Old device ETS support detected\n");
535 mlx4_warn(dev, "Consider upgrading device FW.\n");
536 dev->caps.flags2 |= MLX4_DEV_CAP_FLAG2_ETS_CFG;
537 }
538
531 } else { 539 } else {
532 dev->caps.alloc_res_qp_mask = 0; 540 dev->caps.alloc_res_qp_mask = 0;
533 } 541 }