aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_ethtool.c2
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_netdev.c16
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/mcg.c21
-rw-r--r--include/linux/mlx4/device.h11
4 files changed, 25 insertions, 25 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
index 00f25b5f297f..20476844fb20 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
@@ -889,7 +889,7 @@ static int mlx4_en_flow_replace(struct net_device *dev,
889 .queue_mode = MLX4_NET_TRANS_Q_FIFO, 889 .queue_mode = MLX4_NET_TRANS_Q_FIFO,
890 .exclusive = 0, 890 .exclusive = 0,
891 .allow_loopback = 1, 891 .allow_loopback = 1,
892 .promisc_mode = MLX4_FS_PROMISC_NONE, 892 .promisc_mode = MLX4_FS_REGULAR,
893 }; 893 };
894 894
895 rule.port = priv->port; 895 rule.port = priv->port;
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
index 30d78f806dc3..0860130f2b17 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
@@ -127,7 +127,7 @@ static void mlx4_en_filter_work(struct work_struct *work)
127 .queue_mode = MLX4_NET_TRANS_Q_LIFO, 127 .queue_mode = MLX4_NET_TRANS_Q_LIFO,
128 .exclusive = 1, 128 .exclusive = 1,
129 .allow_loopback = 1, 129 .allow_loopback = 1,
130 .promisc_mode = MLX4_FS_PROMISC_NONE, 130 .promisc_mode = MLX4_FS_REGULAR,
131 .port = priv->port, 131 .port = priv->port,
132 .priority = MLX4_DOMAIN_RFS, 132 .priority = MLX4_DOMAIN_RFS,
133 }; 133 };
@@ -446,7 +446,7 @@ static int mlx4_en_uc_steer_add(struct mlx4_en_priv *priv,
446 .queue_mode = MLX4_NET_TRANS_Q_FIFO, 446 .queue_mode = MLX4_NET_TRANS_Q_FIFO,
447 .exclusive = 0, 447 .exclusive = 0,
448 .allow_loopback = 1, 448 .allow_loopback = 1,
449 .promisc_mode = MLX4_FS_PROMISC_NONE, 449 .promisc_mode = MLX4_FS_REGULAR,
450 .priority = MLX4_DOMAIN_NIC, 450 .priority = MLX4_DOMAIN_NIC,
451 }; 451 };
452 452
@@ -793,7 +793,7 @@ static void mlx4_en_set_promisc_mode(struct mlx4_en_priv *priv,
793 err = mlx4_flow_steer_promisc_add(mdev->dev, 793 err = mlx4_flow_steer_promisc_add(mdev->dev,
794 priv->port, 794 priv->port,
795 priv->base_qpn, 795 priv->base_qpn,
796 MLX4_FS_PROMISC_UPLINK); 796 MLX4_FS_ALL_DEFAULT);
797 if (err) 797 if (err)
798 en_err(priv, "Failed enabling promiscuous mode\n"); 798 en_err(priv, "Failed enabling promiscuous mode\n");
799 priv->flags |= MLX4_EN_FLAG_MC_PROMISC; 799 priv->flags |= MLX4_EN_FLAG_MC_PROMISC;
@@ -856,7 +856,7 @@ static void mlx4_en_clear_promisc_mode(struct mlx4_en_priv *priv,
856 case MLX4_STEERING_MODE_DEVICE_MANAGED: 856 case MLX4_STEERING_MODE_DEVICE_MANAGED:
857 err = mlx4_flow_steer_promisc_remove(mdev->dev, 857 err = mlx4_flow_steer_promisc_remove(mdev->dev,
858 priv->port, 858 priv->port,
859 MLX4_FS_PROMISC_UPLINK); 859 MLX4_FS_ALL_DEFAULT);
860 if (err) 860 if (err)
861 en_err(priv, "Failed disabling promiscuous mode\n"); 861 en_err(priv, "Failed disabling promiscuous mode\n");
862 priv->flags &= ~MLX4_EN_FLAG_MC_PROMISC; 862 priv->flags &= ~MLX4_EN_FLAG_MC_PROMISC;
@@ -917,7 +917,7 @@ static void mlx4_en_do_multicast(struct mlx4_en_priv *priv,
917 err = mlx4_flow_steer_promisc_add(mdev->dev, 917 err = mlx4_flow_steer_promisc_add(mdev->dev,
918 priv->port, 918 priv->port,
919 priv->base_qpn, 919 priv->base_qpn,
920 MLX4_FS_PROMISC_ALL_MULTI); 920 MLX4_FS_MC_DEFAULT);
921 break; 921 break;
922 922
923 case MLX4_STEERING_MODE_B0: 923 case MLX4_STEERING_MODE_B0:
@@ -940,7 +940,7 @@ static void mlx4_en_do_multicast(struct mlx4_en_priv *priv,
940 case MLX4_STEERING_MODE_DEVICE_MANAGED: 940 case MLX4_STEERING_MODE_DEVICE_MANAGED:
941 err = mlx4_flow_steer_promisc_remove(mdev->dev, 941 err = mlx4_flow_steer_promisc_remove(mdev->dev,
942 priv->port, 942 priv->port,
943 MLX4_FS_PROMISC_ALL_MULTI); 943 MLX4_FS_MC_DEFAULT);
944 break; 944 break;
945 945
946 case MLX4_STEERING_MODE_B0: 946 case MLX4_STEERING_MODE_B0:
@@ -1598,10 +1598,10 @@ void mlx4_en_stop_port(struct net_device *dev, int detach)
1598 MLX4_EN_FLAG_MC_PROMISC); 1598 MLX4_EN_FLAG_MC_PROMISC);
1599 mlx4_flow_steer_promisc_remove(mdev->dev, 1599 mlx4_flow_steer_promisc_remove(mdev->dev,
1600 priv->port, 1600 priv->port,
1601 MLX4_FS_PROMISC_UPLINK); 1601 MLX4_FS_ALL_DEFAULT);
1602 mlx4_flow_steer_promisc_remove(mdev->dev, 1602 mlx4_flow_steer_promisc_remove(mdev->dev,
1603 priv->port, 1603 priv->port,
1604 MLX4_FS_PROMISC_ALL_MULTI); 1604 MLX4_FS_MC_DEFAULT);
1605 } else if (priv->flags & MLX4_EN_FLAG_PROMISC) { 1605 } else if (priv->flags & MLX4_EN_FLAG_PROMISC) {
1606 priv->flags &= ~MLX4_EN_FLAG_PROMISC; 1606 priv->flags &= ~MLX4_EN_FLAG_PROMISC;
1607 1607
diff --git a/drivers/net/ethernet/mellanox/mlx4/mcg.c b/drivers/net/ethernet/mellanox/mlx4/mcg.c
index 52685524708d..d1f01dc8fbc3 100644
--- a/drivers/net/ethernet/mellanox/mlx4/mcg.c
+++ b/drivers/net/ethernet/mellanox/mlx4/mcg.c
@@ -649,10 +649,11 @@ static void trans_rule_ctrl_to_hw(struct mlx4_net_trans_rule *ctrl,
649 struct mlx4_net_trans_rule_hw_ctrl *hw) 649 struct mlx4_net_trans_rule_hw_ctrl *hw)
650{ 650{
651 static const u8 __promisc_mode[] = { 651 static const u8 __promisc_mode[] = {
652 [MLX4_FS_PROMISC_NONE] = 0x0, 652 [MLX4_FS_REGULAR] = 0x0,
653 [MLX4_FS_PROMISC_UPLINK] = 0x1, 653 [MLX4_FS_ALL_DEFAULT] = 0x1,
654 [MLX4_FS_PROMISC_FUNCTION_PORT] = 0x2, 654 [MLX4_FS_MC_DEFAULT] = 0x3,
655 [MLX4_FS_PROMISC_ALL_MULTI] = 0x3, 655 [MLX4_FS_UC_SNIFFER] = 0x4,
656 [MLX4_FS_MC_SNIFFER] = 0x5,
656 }; 657 };
657 658
658 u32 dw = 0; 659 u32 dw = 0;
@@ -1153,7 +1154,7 @@ int mlx4_multicast_attach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
1153 struct mlx4_net_trans_rule rule = { 1154 struct mlx4_net_trans_rule rule = {
1154 .queue_mode = MLX4_NET_TRANS_Q_FIFO, 1155 .queue_mode = MLX4_NET_TRANS_Q_FIFO,
1155 .exclusive = 0, 1156 .exclusive = 0,
1156 .promisc_mode = MLX4_FS_PROMISC_NONE, 1157 .promisc_mode = MLX4_FS_REGULAR,
1157 .priority = MLX4_DOMAIN_NIC, 1158 .priority = MLX4_DOMAIN_NIC,
1158 }; 1159 };
1159 1160
@@ -1222,11 +1223,10 @@ int mlx4_flow_steer_promisc_add(struct mlx4_dev *dev, u8 port,
1222 u64 *regid_p; 1223 u64 *regid_p;
1223 1224
1224 switch (mode) { 1225 switch (mode) {
1225 case MLX4_FS_PROMISC_UPLINK: 1226 case MLX4_FS_ALL_DEFAULT:
1226 case MLX4_FS_PROMISC_FUNCTION_PORT:
1227 regid_p = &dev->regid_promisc_array[port]; 1227 regid_p = &dev->regid_promisc_array[port];
1228 break; 1228 break;
1229 case MLX4_FS_PROMISC_ALL_MULTI: 1229 case MLX4_FS_MC_DEFAULT:
1230 regid_p = &dev->regid_allmulti_array[port]; 1230 regid_p = &dev->regid_allmulti_array[port];
1231 break; 1231 break;
1232 default: 1232 default:
@@ -1253,11 +1253,10 @@ int mlx4_flow_steer_promisc_remove(struct mlx4_dev *dev, u8 port,
1253 u64 *regid_p; 1253 u64 *regid_p;
1254 1254
1255 switch (mode) { 1255 switch (mode) {
1256 case MLX4_FS_PROMISC_UPLINK: 1256 case MLX4_FS_ALL_DEFAULT:
1257 case MLX4_FS_PROMISC_FUNCTION_PORT:
1258 regid_p = &dev->regid_promisc_array[port]; 1257 regid_p = &dev->regid_promisc_array[port];
1259 break; 1258 break;
1260 case MLX4_FS_PROMISC_ALL_MULTI: 1259 case MLX4_FS_MC_DEFAULT:
1261 regid_p = &dev->regid_allmulti_array[port]; 1260 regid_p = &dev->regid_allmulti_array[port];
1262 break; 1261 break;
1263 default: 1262 default:
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h
index 9fbf416fa694..b2fe59d199f8 100644
--- a/include/linux/mlx4/device.h
+++ b/include/linux/mlx4/device.h
@@ -896,11 +896,12 @@ static inline int map_hw_to_sw_id(u16 header_id)
896} 896}
897 897
898enum mlx4_net_trans_promisc_mode { 898enum mlx4_net_trans_promisc_mode {
899 MLX4_FS_PROMISC_NONE = 0, 899 MLX4_FS_REGULAR = 1,
900 MLX4_FS_PROMISC_UPLINK, 900 MLX4_FS_ALL_DEFAULT,
901 /* For future use. Not implemented yet */ 901 MLX4_FS_MC_DEFAULT,
902 MLX4_FS_PROMISC_FUNCTION_PORT, 902 MLX4_FS_UC_SNIFFER,
903 MLX4_FS_PROMISC_ALL_MULTI, 903 MLX4_FS_MC_SNIFFER,
904
904}; 905};
905 906
906struct mlx4_spec_eth { 907struct mlx4_spec_eth {