[dpdk-stable] patch 'net/hns3: fix FLR miss detection' has been queued to stable release 19.11.9
Christian Ehrhardt
christian.ehrhardt at canonical.com
Mon May 17 18:08:41 CEST 2021
Hi,
FYI, your patch has been queued to stable release 19.11.9
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/19/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/cpaelzer/dpdk-stable-queue
This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/c47ed490511eed3479960092ab709f9836c1db6a
Thanks.
Christian Ehrhardt <christian.ehrhardt at canonical.com>
---
>From c47ed490511eed3479960092ab709f9836c1db6a 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
[ 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 | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/net/hns3/hns3_cmd.c b/drivers/net/hns3/hns3_cmd.c
index d7de2bc981..e669598cf1 100644
--- a/drivers/net/hns3/hns3_cmd.c
+++ b/drivers/net/hns3/hns3_cmd.c
@@ -210,13 +210,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.31.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2021-05-17 17:40:33.109782694 +0200
+++ 0092-net-hns3-fix-FLR-miss-detection.patch 2021-05-17 17:40:29.295810453 +0200
@@ -1 +1 @@
-From 32040ae365735f94253ce317b4b01e8bc4ea9c6b Mon Sep 17 00:00:00 2001
+From c47ed490511eed3479960092ab709f9836c1db6a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 32040ae365735f94253ce317b4b01e8bc4ea9c6b ]
+
@@ -25 +26,0 @@
-Cc: stable at dpdk.org
@@ -30,2 +31,2 @@
- drivers/net/hns3/hns3_cmd.c | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
+ drivers/net/hns3/hns3_cmd.c | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
@@ -34 +35 @@
-index 22453b0832..1d8ef7a812 100644
+index d7de2bc981..e669598cf1 100644
@@ -37 +38 @@
-@@ -195,12 +195,14 @@ hns3_cmd_csq_clean(struct hns3_hw *hw)
+@@ -210,13 +210,14 @@ hns3_cmd_csq_clean(struct hns3_hw *hw)
@@ -44,0 +46 @@
+-
@@ -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