You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.5 KiB
78 lines
2.5 KiB
From cf5f57fff37c1669cb2813543f8270d884088cba Mon Sep 17 00:00:00 2001
|
|
From: Alaa Hleihel <ahleihel@redhat.com>
|
|
Date: Mon, 1 Jun 2020 15:40:41 -0400
|
|
Subject: [PATCH 288/312] [netdrv] net/mlx5e: Update netdev txq on completions
|
|
during closure
|
|
|
|
Message-id: <20200601154102.25980-19-ahleihel@redhat.com>
|
|
Patchwork-id: 315724
|
|
Patchwork-instance: patchwork
|
|
O-Subject: [RHEL8.3 BZ 1842258 18/39] net/mlx5e: Update netdev txq on completions during closure
|
|
Bugzilla: 1842258
|
|
RH-Acked-by: Honggang Li <honli@redhat.com>
|
|
RH-Acked-by: Kamal Heib <kheib@redhat.com>
|
|
RH-Acked-by: Marcelo Leitner <mleitner@redhat.com>
|
|
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
|
|
|
Bugzilla: http://bugzilla.redhat.com/1842258
|
|
Upstream: v5.7-rc7
|
|
|
|
commit 5e911e2c06bd8c17df29147a5e2d4b17fafda024
|
|
Author: Moshe Shemesh <moshe@mellanox.com>
|
|
Date: Tue Apr 7 17:38:28 2020 +0300
|
|
|
|
net/mlx5e: Update netdev txq on completions during closure
|
|
|
|
On sq closure when we free its descriptors, we should also update netdev
|
|
txq on completions which would not arrive. Otherwise if we reopen sqs
|
|
and attach them back, for example on fw fatal recovery flow, we may get
|
|
tx timeout.
|
|
|
|
Fixes: 29429f3300a3 ("net/mlx5e: Timeout if SQ doesn't flush during close")
|
|
Signed-off-by: Moshe Shemesh <moshe@mellanox.com>
|
|
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
|
|
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
|
|
|
|
Signed-off-by: Alaa Hleihel <ahleihel@redhat.com>
|
|
Signed-off-by: Frantisek Hrbata <fhrbata@redhat.com>
|
|
---
|
|
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 9 ++++++---
|
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c
|
|
index bb73d9ea131e..a0ffd97e8319 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c
|
|
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c
|
|
@@ -538,10 +538,9 @@ bool mlx5e_poll_tx_cq(struct mlx5e_cq *cq, int napi_budget)
|
|
void mlx5e_free_txqsq_descs(struct mlx5e_txqsq *sq)
|
|
{
|
|
struct mlx5e_tx_wqe_info *wi;
|
|
+ u32 dma_fifo_cc, nbytes = 0;
|
|
+ u16 ci, sqcc, npkts = 0;
|
|
struct sk_buff *skb;
|
|
- u32 dma_fifo_cc;
|
|
- u16 sqcc;
|
|
- u16 ci;
|
|
int i;
|
|
|
|
sqcc = sq->cc;
|
|
@@ -566,11 +565,15 @@ void mlx5e_free_txqsq_descs(struct mlx5e_txqsq *sq)
|
|
}
|
|
|
|
dev_kfree_skb_any(skb);
|
|
+ npkts++;
|
|
+ nbytes += wi->num_bytes;
|
|
sqcc += wi->num_wqebbs;
|
|
}
|
|
|
|
sq->dma_fifo_cc = dma_fifo_cc;
|
|
sq->cc = sqcc;
|
|
+
|
|
+ netdev_tx_completed_queue(sq->txq, npkts, nbytes);
|
|
}
|
|
|
|
#ifdef CONFIG_MLX5_CORE_IPOIB
|
|
--
|
|
2.13.6
|
|
|