[dpdk-stable] patch 'net/hns3: fix FLR miss detection' has been queued to stable release 20.11.2

Xueming Li xuemingl at nvidia.com
Mon May 10 18:01:44 CEST 2021


Hi,

FYI, your patch has been queued to stable release 20.11.2

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/12/21. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/c718e751f438a527020ebbb44ab941be23153cc0

Thanks.

Xueming Li <xuemingl at nvidia.com>

---
>From c718e751f438a527020ebbb44ab941be23153cc0 Mon Sep 17 00:00:00 2001
From: Hongbo Zheng <zhenghongbo3 at huawei.com>
Date: Wed, 31 Mar 2021 18:01:37 +0800
Subject: [PATCH] net/hns3: fix FLR miss detection
Cc: Luca Boccassi <bluca at debian.org>

[ upstream commit 32040ae365735f94253ce317b4b01e8bc4ea9c6b ]

When FLR occurs, the head pointer register of
the command queue will be cleared, resulting in
abnormal detection of the head pointer register
of the command queue. At present, FLR is detected
in this way, and the reset recovery process is
executed.

However, when FLR occurs, the header pointer
register of the command queue is not necessarily
abnormal. For example, when the driver runs
normally, the value of the header pointer register
of the command queue may also be 0, which will
lead to the miss detection of FLR.

Therefore, the judgment that whether the base
address register of command queue is 0 is added
to ensure that FLR not miss detection.

Fixes: 2790c6464725 ("net/hns3: support device reset")

Signed-off-by: Hongbo Zheng <zhenghongbo3 at huawei.com>
Signed-off-by: Min Hu (Connor) <humin29 at huawei.com>
---
 drivers/net/hns3/hns3_cmd.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/net/hns3/hns3_cmd.c b/drivers/net/hns3/hns3_cmd.c
index 5f6bdbd42f..8a48714a54 100644
--- a/drivers/net/hns3/hns3_cmd.c
+++ b/drivers/net/hns3/hns3_cmd.c
@@ -195,12 +195,14 @@ hns3_cmd_csq_clean(struct hns3_hw *hw)
 {
 	struct hns3_cmq_ring *csq = &hw->cmq.csq;
 	uint32_t head;
+	uint32_t addr;
 	int clean;
 
 	head = hns3_read_dev(hw, HNS3_CMDQ_TX_HEAD_REG);
-	if (!is_valid_csq_clean_head(csq, head)) {
-		hns3_err(hw, "wrong cmd head (%u, %u-%u)", head,
-			    csq->next_to_use, csq->next_to_clean);
+	addr = hns3_read_dev(hw, HNS3_CMDQ_TX_ADDR_L_REG);
+	if (!is_valid_csq_clean_head(csq, head) || addr == 0) {
+		hns3_err(hw, "wrong cmd addr(%0x) head (%u, %u-%u)", addr, head,
+			 csq->next_to_use, csq->next_to_clean);
 		if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
 			rte_atomic16_set(&hw->reset.disable_cmd, 1);
 			hns3_schedule_delayed_reset(HNS3_DEV_HW_TO_ADAPTER(hw));
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:30.637170500 +0800
+++ 0156-net-hns3-fix-FLR-miss-detection.patch	2021-05-10 23:59:26.600000000 +0800
@@ -1 +1 @@
-From 32040ae365735f94253ce317b4b01e8bc4ea9c6b Mon Sep 17 00:00:00 2001
+From c718e751f438a527020ebbb44ab941be23153cc0 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca at debian.org>
+
+[ upstream commit 32040ae365735f94253ce317b4b01e8bc4ea9c6b ]
@@ -25 +27,0 @@
-Cc: stable at dpdk.org
@@ -34 +36 @@
-index 22453b0832..1d8ef7a812 100644
+index 5f6bdbd42f..8a48714a54 100644
@@ -53,2 +55,2 @@
- 			__atomic_store_n(&hw->reset.disable_cmd, 1,
- 					 __ATOMIC_RELAXED);
+ 			rte_atomic16_set(&hw->reset.disable_cmd, 1);
+ 			hns3_schedule_delayed_reset(HNS3_DEV_HW_TO_ADAPTER(hw));


More information about the stable mailing list