diff options
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 16 | ||||
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/mcg.c | 21 | ||||
-rw-r--r-- | include/linux/mlx4/device.h | 11 |
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 | ||
898 | enum mlx4_net_trans_promisc_mode { | 898 | enum 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 | ||
906 | struct mlx4_spec_eth { | 907 | struct mlx4_spec_eth { |