From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0EC8AA0A02 for ; Mon, 17 May 2021 18:14:17 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0913740041; Mon, 17 May 2021 18:14:17 +0200 (CEST) Received: from youngberry.canonical.com (youngberry.canonical.com [91.189.89.112]) by mails.dpdk.org (Postfix) with ESMTP id C1CC140041 for ; Mon, 17 May 2021 18:14:15 +0200 (CEST) Received: from 2.general.paelzer.uk.vpn ([10.172.196.173] helo=Keschdeichel.fritz.box) by youngberry.canonical.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1lifsl-00082m-Jp; Mon, 17 May 2021 16:14:15 +0000 From: Christian Ehrhardt To: Hongbo Zheng Cc: Min Hu , dpdk stable Date: Mon, 17 May 2021 18:08:41 +0200 Message-Id: <20210517161039.3132619-92-christian.ehrhardt@canonical.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210517161039.3132619-1-christian.ehrhardt@canonical.com> References: <20210517161039.3132619-1-christian.ehrhardt@canonical.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'net/hns3: fix FLR miss detection' has been queued to stable release 19.11.9 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" 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 --- >From c47ed490511eed3479960092ab709f9836c1db6a Mon Sep 17 00:00:00 2001 From: Hongbo Zheng 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 Signed-off-by: Min Hu (Connor) --- 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@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));