netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [pull request][net 0/6] mlx5 fixes 2020-05-28
@ 2020-05-29  6:56 Saeed Mahameed
  2020-05-29  6:56 ` [net 1/6] net/mlx5: Fix crash upon suspend/resume Saeed Mahameed
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Saeed Mahameed @ 2020-05-29  6:56 UTC (permalink / raw)
  To: David S. Miller, jakub; +Cc: netdev, Saeed Mahameed

Hi Dave,

This series introduces some fixes to mlx5 driver.

Nothing major, the only patch worth mentioning is the suspend/resume crash
fix by adding the missing pci device handlers, the fix is very straight
forward and as Dexuan already expressed, the patch is important for Azure
users to avoid crash on VM hibernation, patch is marked for -stable v4.6
below.

Conflict note:
('net/mlx5e: Fix MLX5_TC_CT dependencies') has a trivial one line conflict
with current net-next, which can be resolved by simply using the line from
net-next.

Please pull and let me know if there is any problem.

For -stable v4.6
   ('net/mlx5: Fix crash upon suspend/resume')

Thanks,
Saeed.

---
The following changes since commit 7c6d2ecbda83150b2036a2b36b21381ad4667762:

  net: be more gentle about silly gso requests coming from user (2020-05-28 16:31:30 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5-fixes-2020-05-28

for you to fetch changes up to 4d5e5c2bf43f1ef2d9e51b89f95e871120bca84f:

  net/mlx5e: Fix MLX5_TC_CT dependencies (2020-05-28 23:42:44 -0700)

----------------------------------------------------------------
mlx5-fixes-2020-05-28

----------------------------------------------------------------
Aya Levin (1):
      net/mlx5e: Fix arch depending casting issue in FEC

Maor Dickman (1):
      net/mlx5e: Remove warning "devices are not on same switch HW"

Mark Bloch (1):
      net/mlx5: Fix crash upon suspend/resume

Roi Dayan (1):
      net/mlx5e: Fix stats update for matchall classifier

Tal Gilboa (1):
      net/mlx5e: Properly set default values when disabling adaptive moderation

Vlad Buslov (1):
      net/mlx5e: Fix MLX5_TC_CT dependencies

 drivers/net/ethernet/mellanox/mlx5/core/Kconfig    |  2 +-
 drivers/net/ethernet/mellanox/mlx5/core/en.h       | 10 +++---
 drivers/net/ethernet/mellanox/mlx5/core/en/port.c  | 24 +++++++------
 .../net/ethernet/mellanox/mlx5/core/en_ethtool.c   | 41 +++++++++++++++-------
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c  | 20 +++++++----
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c    |  6 +---
 drivers/net/ethernet/mellanox/mlx5/core/main.c     | 18 ++++++++++
 7 files changed, 81 insertions(+), 40 deletions(-)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [net 1/6] net/mlx5: Fix crash upon suspend/resume
  2020-05-29  6:56 [pull request][net 0/6] mlx5 fixes 2020-05-28 Saeed Mahameed
@ 2020-05-29  6:56 ` Saeed Mahameed
  2020-05-29  6:56 ` [net 2/6] net/mlx5e: Fix stats update for matchall classifier Saeed Mahameed
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Saeed Mahameed @ 2020-05-29  6:56 UTC (permalink / raw)
  To: David S. Miller, jakub
  Cc: netdev, Mark Bloch, Dexuan Cui, Moshe Shemesh, Saeed Mahameed

From: Mark Bloch <markb@mellanox.com>

Currently a Linux system with the mlx5 NIC always crashes upon
hibernation - suspend/resume.

Add basic callbacks so the NIC could be suspended and resumed.

Fixes: 9603b61de1ee ("mlx5: Move pci device handling from mlx5_ib to mlx5_core")
Tested-by: Dexuan Cui <decui@microsoft.com>
Signed-off-by: Mark Bloch <markb@mellanox.com>
Reviewed-by: Moshe Shemesh <moshe@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/main.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c
index c1618b818f3ab..17f818a540903 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c
@@ -1549,6 +1549,22 @@ static void shutdown(struct pci_dev *pdev)
 	mlx5_pci_disable_device(dev);
 }
 
+static int mlx5_suspend(struct pci_dev *pdev, pm_message_t state)
+{
+	struct mlx5_core_dev *dev = pci_get_drvdata(pdev);
+
+	mlx5_unload_one(dev, false);
+
+	return 0;
+}
+
+static int mlx5_resume(struct pci_dev *pdev)
+{
+	struct mlx5_core_dev *dev = pci_get_drvdata(pdev);
+
+	return mlx5_load_one(dev, false);
+}
+
 static const struct pci_device_id mlx5_core_pci_table[] = {
 	{ PCI_VDEVICE(MELLANOX, PCI_DEVICE_ID_MELLANOX_CONNECTIB) },
 	{ PCI_VDEVICE(MELLANOX, 0x1012), MLX5_PCI_DEV_IS_VF},	/* Connect-IB VF */
@@ -1592,6 +1608,8 @@ static struct pci_driver mlx5_core_driver = {
 	.id_table       = mlx5_core_pci_table,
 	.probe          = init_one,
 	.remove         = remove_one,
+	.suspend        = mlx5_suspend,
+	.resume         = mlx5_resume,
 	.shutdown	= shutdown,
 	.err_handler	= &mlx5_err_handler,
 	.sriov_configure   = mlx5_core_sriov_configure,
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [net 2/6] net/mlx5e: Fix stats update for matchall classifier
  2020-05-29  6:56 [pull request][net 0/6] mlx5 fixes 2020-05-28 Saeed Mahameed
  2020-05-29  6:56 ` [net 1/6] net/mlx5: Fix crash upon suspend/resume Saeed Mahameed
@ 2020-05-29  6:56 ` Saeed Mahameed
  2020-05-29  6:56 ` [net 3/6] net/mlx5e: Remove warning "devices are not on same switch HW" Saeed Mahameed
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Saeed Mahameed @ 2020-05-29  6:56 UTC (permalink / raw)
  To: David S. Miller, jakub; +Cc: netdev, Roi Dayan, Saeed Mahameed

From: Roi Dayan <roid@mellanox.com>

It's bytes, packets, lastused.

Fixes: fcb64c0f5640 ("net/mlx5: E-Switch, add ingress rate support")
Signed-off-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
index 5bcf95fcdd59f..cac36c27c7fa4 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
@@ -4614,7 +4614,7 @@ void mlx5e_tc_stats_matchall(struct mlx5e_priv *priv,
 	dpkts = cur_stats.rx_packets - rpriv->prev_vf_vport_stats.rx_packets;
 	dbytes = cur_stats.rx_bytes - rpriv->prev_vf_vport_stats.rx_bytes;
 	rpriv->prev_vf_vport_stats = cur_stats;
-	flow_stats_update(&ma->stats, dpkts, dbytes, jiffies,
+	flow_stats_update(&ma->stats, dbytes, dpkts, jiffies,
 			  FLOW_ACTION_HW_STATS_DELAYED);
 }
 
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [net 3/6] net/mlx5e: Remove warning "devices are not on same switch HW"
  2020-05-29  6:56 [pull request][net 0/6] mlx5 fixes 2020-05-28 Saeed Mahameed
  2020-05-29  6:56 ` [net 1/6] net/mlx5: Fix crash upon suspend/resume Saeed Mahameed
  2020-05-29  6:56 ` [net 2/6] net/mlx5e: Fix stats update for matchall classifier Saeed Mahameed
@ 2020-05-29  6:56 ` Saeed Mahameed
  2020-05-29 19:12   ` Jakub Kicinski
  2020-05-29  6:56 ` [net 4/6] net/mlx5e: Fix arch depending casting issue in FEC Saeed Mahameed
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 9+ messages in thread
From: Saeed Mahameed @ 2020-05-29  6:56 UTC (permalink / raw)
  To: David S. Miller, jakub; +Cc: netdev, Maor Dickman, Roi Dayan, Saeed Mahameed

From: Maor Dickman <maord@mellanox.com>

On tunnel decap rule insertion, the indirect mechanism will attempt to
offload the rule on all uplink representors which will trigger the
"devices are not on same switch HW, can't offload forwarding" message
for the uplink which isn't on the same switch HW as the VF representor.

The above flow is valid and shouldn't cause warning message,
fix by removing the warning and only report this flow using extack.

Fixes: f3953003a66f ("net/mlx5e: Fix allowed tc redirect merged eswitch offload cases")
Signed-off-by: Maor Dickman <maord@mellanox.com>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
index cac36c27c7fa4..6e7b2ce29d411 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
@@ -3849,10 +3849,6 @@ static int parse_tc_fdb_actions(struct mlx5e_priv *priv,
 				if (!mlx5e_is_valid_eswitch_fwd_dev(priv, out_dev)) {
 					NL_SET_ERR_MSG_MOD(extack,
 							   "devices are not on same switch HW, can't offload forwarding");
-					netdev_warn(priv->netdev,
-						    "devices %s %s not on same switch HW, can't offload forwarding\n",
-						    priv->netdev->name,
-						    out_dev->name);
 					return -EOPNOTSUPP;
 				}
 
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [net 4/6] net/mlx5e: Fix arch depending casting issue in FEC
  2020-05-29  6:56 [pull request][net 0/6] mlx5 fixes 2020-05-28 Saeed Mahameed
                   ` (2 preceding siblings ...)
  2020-05-29  6:56 ` [net 3/6] net/mlx5e: Remove warning "devices are not on same switch HW" Saeed Mahameed
@ 2020-05-29  6:56 ` Saeed Mahameed
  2020-05-29  6:56 ` [net 5/6] net/mlx5e: Properly set default values when disabling adaptive moderation Saeed Mahameed
  2020-05-29  6:56 ` [net 6/6] net/mlx5e: Fix MLX5_TC_CT dependencies Saeed Mahameed
  5 siblings, 0 replies; 9+ messages in thread
From: Saeed Mahameed @ 2020-05-29  6:56 UTC (permalink / raw)
  To: David S. Miller, jakub; +Cc: netdev, Aya Levin, Tariq Toukan, Saeed Mahameed

From: Aya Levin <ayal@mellanox.com>

Change type of active_fec to u32 to match the type expected by
mlx5e_get_fec_mode. Copy active_fec and configured_fec values to
unsigned long before preforming bitwise manipulations.
Take the same approach when configuring FEC over 50G link modes: copy
the policy into an unsigned long and only than preform bitwise
operations.

Fixes: 2132b71f78d2 ("net/mlx5e: Advertise globaly supported FEC modes")
Signed-off-by: Aya Levin <ayal@mellanox.com>
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
---
 .../net/ethernet/mellanox/mlx5/core/en/port.c | 24 ++++++++++---------
 .../ethernet/mellanox/mlx5/core/en_ethtool.c  | 20 +++++++++-------
 2 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/port.c b/drivers/net/ethernet/mellanox/mlx5/core/en/port.c
index 2c4a670c8ffd4..2a8950b3056f9 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/port.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/port.c
@@ -369,17 +369,19 @@ enum mlx5e_fec_supported_link_mode {
 			*_policy = MLX5_GET(pplm_reg, _buf, fec_override_admin_##link);	\
 	} while (0)
 
-#define MLX5E_FEC_OVERRIDE_ADMIN_50G_POLICY(buf, policy, write, link)		\
-	do {									\
-		u16 *__policy = &(policy);					\
-		bool _write = (write);						\
-										\
-		if (_write && *__policy)					\
-			*__policy = find_first_bit((u_long *)__policy,		\
-						   sizeof(u16) * BITS_PER_BYTE);\
-		MLX5E_FEC_OVERRIDE_ADMIN_POLICY(buf, *__policy, _write, link);	\
-		if (!_write && *__policy)					\
-			*__policy = 1 << *__policy;				\
+#define MLX5E_FEC_OVERRIDE_ADMIN_50G_POLICY(buf, policy, write, link)			\
+	do {										\
+		unsigned long policy_long;						\
+		u16 *__policy = &(policy);						\
+		bool _write = (write);							\
+											\
+		policy_long = *__policy;						\
+		if (_write && *__policy)						\
+			*__policy = find_first_bit(&policy_long,			\
+						   sizeof(policy_long) * BITS_PER_BYTE);\
+		MLX5E_FEC_OVERRIDE_ADMIN_POLICY(buf, *__policy, _write, link);		\
+		if (!_write && *__policy)						\
+			*__policy = 1 << *__policy;					\
 	} while (0)
 
 /* get/set FEC admin field for a given speed */
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
index 6d703ddee4e27..6f582eb83e54f 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
@@ -665,11 +665,12 @@ static const u32 pplm_fec_2_ethtool_linkmodes[] = {
 static int get_fec_supported_advertised(struct mlx5_core_dev *dev,
 					struct ethtool_link_ksettings *link_ksettings)
 {
-	u_long active_fec = 0;
+	unsigned long active_fec_long;
+	u32 active_fec;
 	u32 bitn;
 	int err;
 
-	err = mlx5e_get_fec_mode(dev, (u32 *)&active_fec, NULL);
+	err = mlx5e_get_fec_mode(dev, &active_fec, NULL);
 	if (err)
 		return (err == -EOPNOTSUPP) ? 0 : err;
 
@@ -682,10 +683,11 @@ static int get_fec_supported_advertised(struct mlx5_core_dev *dev,
 	MLX5E_ADVERTISE_SUPPORTED_FEC(MLX5E_FEC_LLRS_272_257_1,
 				      ETHTOOL_LINK_MODE_FEC_LLRS_BIT);
 
+	active_fec_long = active_fec;
 	/* active fec is a bit set, find out which bit is set and
 	 * advertise the corresponding ethtool bit
 	 */
-	bitn = find_first_bit(&active_fec, sizeof(u32) * BITS_PER_BYTE);
+	bitn = find_first_bit(&active_fec_long, sizeof(active_fec_long) * BITS_PER_BYTE);
 	if (bitn < ARRAY_SIZE(pplm_fec_2_ethtool_linkmodes))
 		__set_bit(pplm_fec_2_ethtool_linkmodes[bitn],
 			  link_ksettings->link_modes.advertising);
@@ -1517,8 +1519,8 @@ static int mlx5e_get_fecparam(struct net_device *netdev,
 {
 	struct mlx5e_priv *priv = netdev_priv(netdev);
 	struct mlx5_core_dev *mdev = priv->mdev;
-	u16 fec_configured = 0;
-	u32 fec_active = 0;
+	u16 fec_configured;
+	u32 fec_active;
 	int err;
 
 	err = mlx5e_get_fec_mode(mdev, &fec_active, &fec_configured);
@@ -1526,14 +1528,14 @@ static int mlx5e_get_fecparam(struct net_device *netdev,
 	if (err)
 		return err;
 
-	fecparam->active_fec = pplm2ethtool_fec((u_long)fec_active,
-						sizeof(u32) * BITS_PER_BYTE);
+	fecparam->active_fec = pplm2ethtool_fec((unsigned long)fec_active,
+						sizeof(unsigned long) * BITS_PER_BYTE);
 
 	if (!fecparam->active_fec)
 		return -EOPNOTSUPP;
 
-	fecparam->fec = pplm2ethtool_fec((u_long)fec_configured,
-					 sizeof(u16) * BITS_PER_BYTE);
+	fecparam->fec = pplm2ethtool_fec((unsigned long)fec_configured,
+					 sizeof(unsigned long) * BITS_PER_BYTE);
 
 	return 0;
 }
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [net 5/6] net/mlx5e: Properly set default values when disabling adaptive moderation
  2020-05-29  6:56 [pull request][net 0/6] mlx5 fixes 2020-05-28 Saeed Mahameed
                   ` (3 preceding siblings ...)
  2020-05-29  6:56 ` [net 4/6] net/mlx5e: Fix arch depending casting issue in FEC Saeed Mahameed
@ 2020-05-29  6:56 ` Saeed Mahameed
  2020-05-29  6:56 ` [net 6/6] net/mlx5e: Fix MLX5_TC_CT dependencies Saeed Mahameed
  5 siblings, 0 replies; 9+ messages in thread
From: Saeed Mahameed @ 2020-05-29  6:56 UTC (permalink / raw)
  To: David S. Miller, jakub; +Cc: netdev, Tal Gilboa, Tariq Toukan, Saeed Mahameed

From: Tal Gilboa <talgi@mellanox.com>

Add a call to mlx5e_reset_rx/tx_moderation() when enabling/disabling
adaptive moderation, in order to select the proper default values.

In order to do so, we separate the logic of selecting the moderation values
and setting moderion mode (CQE/EQE based).

Fixes: 0088cbbc4b66 ("net/mlx5e: Enable CQE based moderation on TX CQ")
Fixes: 9908aa292971 ("net/mlx5e: CQE based moderation")
Signed-off-by: Tal Gilboa <talgi@mellanox.com>
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en.h  | 10 +++++----
 .../ethernet/mellanox/mlx5/core/en_ethtool.c  | 21 +++++++++++++++----
 .../net/ethernet/mellanox/mlx5/core/en_main.c | 20 ++++++++++++------
 3 files changed, 37 insertions(+), 14 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h
index 59745402747be..0a5aada0f50f9 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h
@@ -1068,10 +1068,12 @@ void mlx5e_deactivate_priv_channels(struct mlx5e_priv *priv);
 
 void mlx5e_build_default_indir_rqt(u32 *indirection_rqt, int len,
 				   int num_channels);
-void mlx5e_set_tx_cq_mode_params(struct mlx5e_params *params,
-				 u8 cq_period_mode);
-void mlx5e_set_rx_cq_mode_params(struct mlx5e_params *params,
-				 u8 cq_period_mode);
+
+void mlx5e_reset_tx_moderation(struct mlx5e_params *params, u8 cq_period_mode);
+void mlx5e_reset_rx_moderation(struct mlx5e_params *params, u8 cq_period_mode);
+void mlx5e_set_tx_cq_mode_params(struct mlx5e_params *params, u8 cq_period_mode);
+void mlx5e_set_rx_cq_mode_params(struct mlx5e_params *params, u8 cq_period_mode);
+
 void mlx5e_set_rq_type(struct mlx5_core_dev *mdev, struct mlx5e_params *params);
 void mlx5e_init_rq_type_params(struct mlx5_core_dev *mdev,
 			       struct mlx5e_params *params);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
index 6f582eb83e54f..bc290ae80a531 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
@@ -527,8 +527,8 @@ int mlx5e_ethtool_set_coalesce(struct mlx5e_priv *priv,
 	struct dim_cq_moder *rx_moder, *tx_moder;
 	struct mlx5_core_dev *mdev = priv->mdev;
 	struct mlx5e_channels new_channels = {};
+	bool reset_rx, reset_tx;
 	int err = 0;
-	bool reset;
 
 	if (!MLX5_CAP_GEN(mdev, cq_moderation))
 		return -EOPNOTSUPP;
@@ -566,15 +566,28 @@ int mlx5e_ethtool_set_coalesce(struct mlx5e_priv *priv,
 	}
 	/* we are opened */
 
-	reset = (!!coal->use_adaptive_rx_coalesce != priv->channels.params.rx_dim_enabled) ||
-		(!!coal->use_adaptive_tx_coalesce != priv->channels.params.tx_dim_enabled);
+	reset_rx = !!coal->use_adaptive_rx_coalesce != priv->channels.params.rx_dim_enabled;
+	reset_tx = !!coal->use_adaptive_tx_coalesce != priv->channels.params.tx_dim_enabled;
 
-	if (!reset) {
+	if (!reset_rx && !reset_tx) {
 		mlx5e_set_priv_channels_coalesce(priv, coal);
 		priv->channels.params = new_channels.params;
 		goto out;
 	}
 
+	if (reset_rx) {
+		u8 mode = MLX5E_GET_PFLAG(&new_channels.params,
+					  MLX5E_PFLAG_RX_CQE_BASED_MODER);
+
+		mlx5e_reset_rx_moderation(&new_channels.params, mode);
+	}
+	if (reset_tx) {
+		u8 mode = MLX5E_GET_PFLAG(&new_channels.params,
+					  MLX5E_PFLAG_TX_CQE_BASED_MODER);
+
+		mlx5e_reset_tx_moderation(&new_channels.params, mode);
+	}
+
 	err = mlx5e_safe_switch_channels(priv, &new_channels, NULL, NULL);
 
 out:
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index c6b83042d4318..bd8d0e0960857 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -4716,7 +4716,7 @@ static u8 mlx5_to_net_dim_cq_period_mode(u8 cq_period_mode)
 		DIM_CQ_PERIOD_MODE_START_FROM_EQE;
 }
 
-void mlx5e_set_tx_cq_mode_params(struct mlx5e_params *params, u8 cq_period_mode)
+void mlx5e_reset_tx_moderation(struct mlx5e_params *params, u8 cq_period_mode)
 {
 	if (params->tx_dim_enabled) {
 		u8 dim_period_mode = mlx5_to_net_dim_cq_period_mode(cq_period_mode);
@@ -4725,13 +4725,9 @@ void mlx5e_set_tx_cq_mode_params(struct mlx5e_params *params, u8 cq_period_mode)
 	} else {
 		params->tx_cq_moderation = mlx5e_get_def_tx_moderation(cq_period_mode);
 	}
-
-	MLX5E_SET_PFLAG(params, MLX5E_PFLAG_TX_CQE_BASED_MODER,
-			params->tx_cq_moderation.cq_period_mode ==
-				MLX5_CQ_PERIOD_MODE_START_FROM_CQE);
 }
 
-void mlx5e_set_rx_cq_mode_params(struct mlx5e_params *params, u8 cq_period_mode)
+void mlx5e_reset_rx_moderation(struct mlx5e_params *params, u8 cq_period_mode)
 {
 	if (params->rx_dim_enabled) {
 		u8 dim_period_mode = mlx5_to_net_dim_cq_period_mode(cq_period_mode);
@@ -4740,7 +4736,19 @@ void mlx5e_set_rx_cq_mode_params(struct mlx5e_params *params, u8 cq_period_mode)
 	} else {
 		params->rx_cq_moderation = mlx5e_get_def_rx_moderation(cq_period_mode);
 	}
+}
+
+void mlx5e_set_tx_cq_mode_params(struct mlx5e_params *params, u8 cq_period_mode)
+{
+	mlx5e_reset_tx_moderation(params, cq_period_mode);
+	MLX5E_SET_PFLAG(params, MLX5E_PFLAG_TX_CQE_BASED_MODER,
+			params->tx_cq_moderation.cq_period_mode ==
+				MLX5_CQ_PERIOD_MODE_START_FROM_CQE);
+}
 
+void mlx5e_set_rx_cq_mode_params(struct mlx5e_params *params, u8 cq_period_mode)
+{
+	mlx5e_reset_rx_moderation(params, cq_period_mode);
 	MLX5E_SET_PFLAG(params, MLX5E_PFLAG_RX_CQE_BASED_MODER,
 			params->rx_cq_moderation.cq_period_mode ==
 				MLX5_CQ_PERIOD_MODE_START_FROM_CQE);
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [net 6/6] net/mlx5e: Fix MLX5_TC_CT dependencies
  2020-05-29  6:56 [pull request][net 0/6] mlx5 fixes 2020-05-28 Saeed Mahameed
                   ` (4 preceding siblings ...)
  2020-05-29  6:56 ` [net 5/6] net/mlx5e: Properly set default values when disabling adaptive moderation Saeed Mahameed
@ 2020-05-29  6:56 ` Saeed Mahameed
  5 siblings, 0 replies; 9+ messages in thread
From: Saeed Mahameed @ 2020-05-29  6:56 UTC (permalink / raw)
  To: David S. Miller, jakub; +Cc: netdev, Vlad Buslov, Roi Dayan, Saeed Mahameed

From: Vlad Buslov <vladbu@mellanox.com>

Change MLX5_TC_CT config dependencies to include MLX5_ESWITCH instead of
MLX5_CORE_EN && NET_SWITCHDEV, which are already required by MLX5_ESWITCH.
Without this change mlx5 fails to compile if user disables MLX5_ESWITCH
without also manually disabling MLX5_TC_CT.

Fixes: 4c3844d9e97e ("net/mlx5e: CT: Introduce connection tracking")
Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/Kconfig b/drivers/net/ethernet/mellanox/mlx5/core/Kconfig
index 7d69a3061f178..fd375cbe586e1 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/Kconfig
+++ b/drivers/net/ethernet/mellanox/mlx5/core/Kconfig
@@ -80,7 +80,7 @@ config MLX5_ESWITCH
 
 config MLX5_TC_CT
 	bool "MLX5 TC connection tracking offload support"
-	depends on MLX5_CORE_EN && NET_SWITCHDEV && NF_FLOW_TABLE && NET_ACT_CT && NET_TC_SKB_EXT
+	depends on MLX5_ESWITCH && NF_FLOW_TABLE && NET_ACT_CT && NET_TC_SKB_EXT
 	default y
 	help
 	  Say Y here if you want to support offloading connection tracking rules
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [net 3/6] net/mlx5e: Remove warning "devices are not on same switch HW"
  2020-05-29  6:56 ` [net 3/6] net/mlx5e: Remove warning "devices are not on same switch HW" Saeed Mahameed
@ 2020-05-29 19:12   ` Jakub Kicinski
  2020-05-29 20:00     ` Saeed Mahameed
  0 siblings, 1 reply; 9+ messages in thread
From: Jakub Kicinski @ 2020-05-29 19:12 UTC (permalink / raw)
  To: Saeed Mahameed; +Cc: David S. Miller, netdev, Maor Dickman, Roi Dayan

On Thu, 28 May 2020 23:56:42 -0700 Saeed Mahameed wrote:
> From: Maor Dickman <maord@mellanox.com>
> 
> On tunnel decap rule insertion, the indirect mechanism will attempt to
> offload the rule on all uplink representors which will trigger the
> "devices are not on same switch HW, can't offload forwarding" message
> for the uplink which isn't on the same switch HW as the VF representor.
> 
> The above flow is valid and shouldn't cause warning message,
> fix by removing the warning and only report this flow using extack.
> 
> Fixes: f3953003a66f ("net/mlx5e: Fix allowed tc redirect merged eswitch offload cases")
> Signed-off-by: Maor Dickman <maord@mellanox.com>
> Reviewed-by: Roi Dayan <roid@mellanox.com>
> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>

Fixes tag: Fixes: f3953003a66f ("net/mlx5e: Fix allowed tc redirect merged eswitch offload cases")
Has these problem(s):
	- Target SHA1 does not exist

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [net 3/6] net/mlx5e: Remove warning "devices are not on same switch HW"
  2020-05-29 19:12   ` Jakub Kicinski
@ 2020-05-29 20:00     ` Saeed Mahameed
  0 siblings, 0 replies; 9+ messages in thread
From: Saeed Mahameed @ 2020-05-29 20:00 UTC (permalink / raw)
  To: kuba; +Cc: Roi Dayan, Maor Dickman, davem, netdev

On Fri, 2020-05-29 at 12:12 -0700, Jakub Kicinski wrote:
> On Thu, 28 May 2020 23:56:42 -0700 Saeed Mahameed wrote:
> > From: Maor Dickman <maord@mellanox.com>
> > 
> > On tunnel decap rule insertion, the indirect mechanism will attempt
> > to
> > offload the rule on all uplink representors which will trigger the
> > "devices are not on same switch HW, can't offload forwarding"
> > message
> > for the uplink which isn't on the same switch HW as the VF
> > representor.
> > 
> > The above flow is valid and shouldn't cause warning message,
> > fix by removing the warning and only report this flow using extack.
> > 
> > Fixes: f3953003a66f ("net/mlx5e: Fix allowed tc redirect merged
> > eswitch offload cases")
> > Signed-off-by: Maor Dickman <maord@mellanox.com>
> > Reviewed-by: Roi Dayan <roid@mellanox.com>
> > Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
> 
> Fixes tag: Fixes: f3953003a66f ("net/mlx5e: Fix allowed tc redirect
> merged eswitch offload cases")
> Has these problem(s):
> 	- Target SHA1 does not exist

Fixing, thanks !

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-05-29 20:00 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-29  6:56 [pull request][net 0/6] mlx5 fixes 2020-05-28 Saeed Mahameed
2020-05-29  6:56 ` [net 1/6] net/mlx5: Fix crash upon suspend/resume Saeed Mahameed
2020-05-29  6:56 ` [net 2/6] net/mlx5e: Fix stats update for matchall classifier Saeed Mahameed
2020-05-29  6:56 ` [net 3/6] net/mlx5e: Remove warning "devices are not on same switch HW" Saeed Mahameed
2020-05-29 19:12   ` Jakub Kicinski
2020-05-29 20:00     ` Saeed Mahameed
2020-05-29  6:56 ` [net 4/6] net/mlx5e: Fix arch depending casting issue in FEC Saeed Mahameed
2020-05-29  6:56 ` [net 5/6] net/mlx5e: Properly set default values when disabling adaptive moderation Saeed Mahameed
2020-05-29  6:56 ` [net 6/6] net/mlx5e: Fix MLX5_TC_CT dependencies Saeed Mahameed

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).