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.
64 lines
2.3 KiB
64 lines
2.3 KiB
From b994a9349762bcaad79091144ec96ce7a4b8d5a7 Mon Sep 17 00:00:00 2001
|
|
From: Alaa Hleihel <ahleihel@redhat.com>
|
|
Date: Tue, 12 May 2020 10:54:34 -0400
|
|
Subject: [PATCH 164/312] [netdrv] net/mlx5e: Fix missing reset of SW metadata
|
|
in Striding RQ reset
|
|
|
|
Message-id: <20200512105530.4207-69-ahleihel@redhat.com>
|
|
Patchwork-id: 306940
|
|
Patchwork-instance: patchwork
|
|
O-Subject: [RHEL8.3 BZ 1789382 068/124] net/mlx5e: Fix missing reset of SW metadata in Striding RQ reset
|
|
Bugzilla: 1789382
|
|
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
|
|
RH-Acked-by: Kamal Heib <kheib@redhat.com>
|
|
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
|
|
|
Bugzilla: http://bugzilla.redhat.com/1789382
|
|
Upstream: v5.6
|
|
|
|
commit 39369fd536d485a99a59d8e357c0d4d3ce19a3b8
|
|
Author: Aya Levin <ayal@mellanox.com>
|
|
Date: Thu Mar 12 12:35:32 2020 +0200
|
|
|
|
net/mlx5e: Fix missing reset of SW metadata in Striding RQ reset
|
|
|
|
When resetting the RQ (moving RQ state from RST to RDY), the driver
|
|
resets the WQ's SW metadata.
|
|
In striding RQ mode, we maintain a field that reflects the actual
|
|
expected WQ head (including in progress WQEs posted to the ICOSQ).
|
|
It was mistakenly not reset together with the WQ. Fix this here.
|
|
|
|
Fixes: 8276ea1353a4 ("net/mlx5e: Report and recover from CQE with error on RQ")
|
|
Signed-off-by: Aya Levin <ayal@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/txrx.h | 6 ++++--
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h b/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h
|
|
index a226277b0980..f07b1399744e 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h
|
|
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h
|
|
@@ -181,10 +181,12 @@ mlx5e_tx_dma_unmap(struct device *pdev, struct mlx5e_sq_dma *dma)
|
|
|
|
static inline void mlx5e_rqwq_reset(struct mlx5e_rq *rq)
|
|
{
|
|
- if (rq->wq_type == MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ)
|
|
+ if (rq->wq_type == MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ) {
|
|
mlx5_wq_ll_reset(&rq->mpwqe.wq);
|
|
- else
|
|
+ rq->mpwqe.actual_wq_head = 0;
|
|
+ } else {
|
|
mlx5_wq_cyc_reset(&rq->wqe.wq);
|
|
+ }
|
|
}
|
|
|
|
/* SW parser related functions */
|
|
--
|
|
2.13.6
|
|
|