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 B5D33433D8 for ; Mon, 11 Dec 2023 11:14:49 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AEE9A40ED2; Mon, 11 Dec 2023 11:14:49 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2062.outbound.protection.outlook.com [40.107.243.62]) by mails.dpdk.org (Postfix) with ESMTP id 6D35A40ED2 for ; Mon, 11 Dec 2023 11:14:47 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J1fScRoJJEYYAMXznLN1SCsL2JSlXaKX6GOMCK8Pfb8v/bt+ooVkQRxbIIl+h1eAGe9CqVfPGQRRnLHgyi3LbGWZoeFHchFHeRbaGzSv/m1NZpKDN68VirKpJLtMSXlZA0nnoh28EYufQGWrGrnRxpqos866AlTqsXg6oSOnRJZUwwXt8NAriI8QrHNpqZM55A61VqL68cFtNDDrVd/LthS4q4BsU+jyPSczvSkGkVzgnj53B3S86lKXBXc2DHFdCyCKyTPNvWli+oLfipWr5cYnvGo8FYBqzpvWlzOLZhTxobrFblvXQgHlqbV7R1gSHoMBAjjF8cF9EmqnQ+gM2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=wUEPxYsD2C3WeTZOUepVTMmBTdr6TGQn7m+ifJkLxx8=; b=GToJR5GdM3mEmPg3Z9ka9iQ2RwGqzarumdnZTWzuvWjd+RfWEpTdTGiAOT41ZBuzvNv/gAKEov8DJE/bYbNAY/M+Y0oH9cNRAgZQCBVxEh/A6Y2yAMbcqCKia4nEJ9iALTTXabXhBLYOC7WzX5XoIKiZ4sm1jkicl975NRm5LajXAmICbvNLvOp3ZluCX7gkcHSc40AjyFr+q34h5JCSZ5LdXLrGRHww8arbC3EjkFJ+9nQb13XCVJSD6WoamIryxhdr5+YlfKnp6K6crmrPaB/kGCeQ7W8y4H3Zl1Oa8yIGvVdEZfHbJc9WmCgFJei1rQGO2Kg5CmUjgx1+MOnGiA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=huawei.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wUEPxYsD2C3WeTZOUepVTMmBTdr6TGQn7m+ifJkLxx8=; b=C0j4n9P/MZMVTxlgG/2rYzPV8CqzvINVfC9VxxRSHwvRoUvoKOfg/dFhhZxwC/dWIwyJZsBIxXKJuVoOszbc9Oy5Plu0hXuVNcnwC1usvkT90ehLkh1mECatJuoJn8fJig8HhFhWXD/dbOFNOXDip+cxFpXGnTWf9DL5bW2L5jsM/UMP5AlLefAMqjhvEhfCZHqk0bEC2vdxRaJHQMScUhMuWX0nwD1YHOI5wKvneWzvqglRfVHfWQPSVDTVBf2IMVzgxJ0wOaFUNPDaUx4HO3LLoRjQ2UiyuDAfaZqdWvOwl+pH+6mldxVR8mkh4cwAIx4kHsqnYRAJTHBtIzYoWQ== Received: from CH0PR03CA0437.namprd03.prod.outlook.com (2603:10b6:610:10e::17) by DS0PR12MB7727.namprd12.prod.outlook.com (2603:10b6:8:135::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Mon, 11 Dec 2023 10:14:44 +0000 Received: from DS3PEPF000099DD.namprd04.prod.outlook.com (2603:10b6:610:10e:cafe::5e) by CH0PR03CA0437.outlook.office365.com (2603:10b6:610:10e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33 via Frontend Transport; Mon, 11 Dec 2023 10:14:44 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by DS3PEPF000099DD.mail.protection.outlook.com (10.167.17.199) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.18 via Frontend Transport; Mon, 11 Dec 2023 10:14:44 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 02:14:32 -0800 Received: from nvidia.com (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 02:14:31 -0800 From: Xueming Li To: Dengdui Huang CC: dpdk stable Subject: patch 'net/hns3: fix IMP or global reset' has been queued to stable release 22.11.4 Date: Mon, 11 Dec 2023 18:10:49 +0800 Message-ID: <20231211101226.2122-25-xuemingl@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231211101226.2122-1-xuemingl@nvidia.com> References: <20231022142250.10324-1-xuemingl@nvidia.com> <20231211101226.2122-1-xuemingl@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF000099DD:EE_|DS0PR12MB7727:EE_ X-MS-Office365-Filtering-Correlation-Id: 5fa61396-b51c-430c-f157-08dbfa31ff4d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EZi/sdi7qLqO/DsAExstEFGWcS+utrgNSDnxJPqtahTKdu+tXoCmT+7E2TtqL98YYTiAll/InJY8IdoK1f20paa7/2mNdDJxtnIE1AqdEcrMpBKIiTpReiC333gWD7t33pAjHmAt+OyQMBTGSoyTmOdZSr8KYN7651Dkzw03AfBB0egDIcP8v5IF3Da+sFpsBNzAuFYS7tC8QX5Kqm458AZLxl8YI/Y0D7NROoejlVw981ImBj0tAmi2wf8VJQIYqi1IA38VjF/51n9JDSQUcftxqgbSDVP5gNrFxIc75Bhkbm+nZTCbD1kIeHyFAaP02nW4anVjJo/QEaD4hN4RvWVrsbRScjv3ndcXdMy1Ib3Bdlpuvqvri7ArMCRs/nnNrpjdH6BuPSKHyynXIgUGHleXiWKRkpu9jNLWED0BKH0VdR3/U+jlJ5i+7eQIt48KrmvubFl9lwNXslOrBdzzYB+DVPGnYtS+DFPYO4ehTndPdA3BdrUiNzuo5w/jR39SlGi/f5IiQ5QZzeVKeZY8Fw9fkQ07xNhRw5eqEWR2mfWnJA0Lu8r4SdpHFcuejhk55qJko2z7IuiTj24TrBBK9TX3gy4FVibKjfVi9xzoOP7kFvPv0ENnZmA6jLwpcGjgFDYPWHrSkbuzIpq5UTuNq03o8yO5M1SX6CUY69AzCbUlQLT9zuZZvG7q9U0+Gw8FLa3q1eE+gZhG94/Tu+rQ5AOEsKbzrvAj4ZNeeqXYfIlmwLTzlWinPOJejVcFCK2Nc+wqs2CI2OEnLkQWrEFMpw== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(396003)(346002)(376002)(39860400002)(136003)(230922051799003)(1800799012)(451199024)(64100799003)(186009)(82310400011)(46966006)(40470700004)(36840700001)(55016003)(40480700001)(6286002)(1076003)(26005)(426003)(336012)(16526019)(2616005)(40460700003)(82740400003)(40140700001)(36756003)(7636003)(86362001)(356005)(47076005)(83380400001)(5660300002)(53546011)(7696005)(6666004)(36860700001)(316002)(70586007)(70206006)(966005)(8936002)(8676002)(6916009)(41300700001)(4001150100001)(4326008)(2906002)(478600001)(30864003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2023 10:14:44.5290 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5fa61396-b51c-430c-f157-08dbfa31ff4d X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DS3PEPF000099DD.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7727 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 Hi, FYI, your patch has been queued to stable release 22.11.4 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 12/13/23. 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://git.dpdk.org/dpdk-stable/log/?h=22.11-staging This queued commit can be viewed at: https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=9a62d06e64ab1c7708c2197d23f198eb3daaccce Thanks. Xueming Li --- >From 9a62d06e64ab1c7708c2197d23f198eb3daaccce Mon Sep 17 00:00:00 2001 From: Dengdui Huang Date: Fri, 27 Oct 2023 14:09:45 +0800 Subject: [PATCH] net/hns3: fix IMP or global reset Cc: Xueming Li [ upstream commit 1eee1ea75c0eadaea6dde368b289cf0acf6a1190 ] Currently, when the IMP or Global reset detected, the vector0 interrupt is enabled before the reset process is completed. At this moment, if the initialization of IMP is not completed, and the vector0 interrupt may continue to be reported. In this scenario, the IMP/global reset being performed by the driver does not need to be interrupted. Therefore, for IMP and global resets, the driver has to enable the interrupt after the end of reset. The RAS interrupt is also shared with the vector0 interrupt. When the interrupt is disabled, the RAS interrupt can still be reported to the driver and the driver interrupt processing function is also called. In this case, the interrupt status of the IMP/global may still exist. Therefore, this patch also has to the check of the new reset level based on the priority of reset level in the interrupt handler. Fixes: 2790c6464725 ("net/hns3: support device reset") Fixes: 3988ab0eee52 ("net/hns3: add abnormal interrupt process") Signed-off-by: Dengdui Huang --- drivers/net/hns3/hns3_ethdev.c | 88 ++++++++++++++++++++++++++++------ drivers/net/hns3/hns3_ethdev.h | 1 + drivers/net/hns3/hns3_intr.c | 2 + 3 files changed, 77 insertions(+), 14 deletions(-) diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c index 576cc56216..036062947d 100644 --- a/drivers/net/hns3/hns3_ethdev.c +++ b/drivers/net/hns3/hns3_ethdev.c @@ -219,6 +219,30 @@ out: return ret; } +void +hns3_clear_reset_event(struct hns3_hw *hw) +{ + uint32_t clearval = 0; + + switch (hw->reset.level) { + case HNS3_IMP_RESET: + clearval = BIT(HNS3_VECTOR0_IMPRESET_INT_B); + break; + case HNS3_GLOBAL_RESET: + clearval = BIT(HNS3_VECTOR0_GLOBALRESET_INT_B); + break; + default: + break; + } + + if (clearval == 0) + return; + + hns3_write_dev(hw, HNS3_MISC_RESET_STS_REG, clearval); + + hns3_pf_enable_irq0(hw); +} + static void hns3_clear_event_cause(struct hns3_hw *hw, uint32_t event_type, uint32_t regclr) { @@ -291,6 +315,34 @@ hns3_delay_before_clear_event_cause(struct hns3_hw *hw, uint32_t event_type, uin } } +static bool +hns3_reset_event_valid(struct hns3_hw *hw) +{ + struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw); + enum hns3_reset_level new_req = HNS3_NONE_RESET; + enum hns3_reset_level last_req; + uint32_t vector0_int; + + vector0_int = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG); + if (BIT(HNS3_VECTOR0_IMPRESET_INT_B) & vector0_int) + new_req = HNS3_IMP_RESET; + else if (BIT(HNS3_VECTOR0_GLOBALRESET_INT_B) & vector0_int) + new_req = HNS3_GLOBAL_RESET; + if (new_req == HNS3_NONE_RESET) + return true; + + last_req = hns3_get_reset_level(hns, &hw->reset.pending); + if (last_req == HNS3_NONE_RESET) + return true; + + if (new_req > last_req) + return true; + + hns3_warn(hw, "last_req (%u) less than or equal to new_req (%u) ignore", + last_req, new_req); + return false; +} + static void hns3_interrupt_handler(void *param) { @@ -303,6 +355,9 @@ hns3_interrupt_handler(void *param) uint32_t ras_int; uint32_t cmdq_int; + if (!hns3_reset_event_valid(hw)) + return; + /* Disable interrupt */ hns3_pf_disable_irq0(hw); @@ -331,7 +386,11 @@ hns3_interrupt_handler(void *param) } /* Enable interrupt if it is not cause by reset */ - hns3_pf_enable_irq0(hw); + if (event_cause == HNS3_VECTOR0_EVENT_ERR || + event_cause == HNS3_VECTOR0_EVENT_MBX || + event_cause == HNS3_VECTOR0_EVENT_PTP || + event_cause == HNS3_VECTOR0_EVENT_OTHER) + hns3_pf_enable_irq0(hw); } static int @@ -5523,7 +5582,7 @@ is_pf_reset_done(struct hns3_hw *hw) return true; } -static void +static enum hns3_reset_level hns3_detect_reset_event(struct hns3_hw *hw) { struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw); @@ -5535,11 +5594,9 @@ hns3_detect_reset_event(struct hns3_hw *hw) vector0_intr_state = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG); if (BIT(HNS3_VECTOR0_IMPRESET_INT_B) & vector0_intr_state) { __atomic_store_n(&hw->reset.disable_cmd, 1, __ATOMIC_RELAXED); - hns3_atomic_set_bit(HNS3_IMP_RESET, &hw->reset.pending); new_req = HNS3_IMP_RESET; } else if (BIT(HNS3_VECTOR0_GLOBALRESET_INT_B) & vector0_intr_state) { __atomic_store_n(&hw->reset.disable_cmd, 1, __ATOMIC_RELAXED); - hns3_atomic_set_bit(HNS3_GLOBAL_RESET, &hw->reset.pending); new_req = HNS3_GLOBAL_RESET; } @@ -5547,13 +5604,16 @@ hns3_detect_reset_event(struct hns3_hw *hw) hns3_schedule_delayed_reset(hns); hns3_warn(hw, "High level reset detected, delay do reset"); } + + return new_req; } bool hns3_is_reset_pending(struct hns3_adapter *hns) { + enum hns3_reset_level new_req; struct hns3_hw *hw = &hns->hw; - enum hns3_reset_level reset; + enum hns3_reset_level last_req; /* * Only primary can process can process the reset event, @@ -5562,17 +5622,17 @@ hns3_is_reset_pending(struct hns3_adapter *hns) if (rte_eal_process_type() != RTE_PROC_PRIMARY) return false; - hns3_detect_reset_event(hw); - reset = hns3_get_reset_level(hns, &hw->reset.pending); - if (reset != HNS3_NONE_RESET && hw->reset.level != HNS3_NONE_RESET && - hw->reset.level < reset) { - hns3_warn(hw, "High level reset %d is pending", reset); + new_req = hns3_detect_reset_event(hw); + last_req = hns3_get_reset_level(hns, &hw->reset.pending); + if (last_req != HNS3_NONE_RESET && new_req != HNS3_NONE_RESET && + new_req < last_req) { + hns3_warn(hw, "High level reset %d is pending", last_req); return true; } - reset = hns3_get_reset_level(hns, &hw->reset.request); - if (reset != HNS3_NONE_RESET && hw->reset.level != HNS3_NONE_RESET && - hw->reset.level < reset) { - hns3_warn(hw, "High level reset %d is request", reset); + last_req = hns3_get_reset_level(hns, &hw->reset.request); + if (last_req != HNS3_NONE_RESET && hw->reset.level != HNS3_NONE_RESET && + hw->reset.level < last_req) { + hns3_warn(hw, "High level reset %d is request", last_req); return true; } return false; diff --git a/drivers/net/hns3/hns3_ethdev.h b/drivers/net/hns3/hns3_ethdev.h index 58572948fe..f86512bd35 100644 --- a/drivers/net/hns3/hns3_ethdev.h +++ b/drivers/net/hns3/hns3_ethdev.h @@ -1029,6 +1029,7 @@ void hns3_update_linkstatus_and_event(struct hns3_hw *hw, bool query); void hns3vf_update_link_status(struct hns3_hw *hw, uint8_t link_status, uint32_t link_speed, uint8_t link_duplex); void hns3vf_update_push_lsc_cap(struct hns3_hw *hw, bool supported); +void hns3_clear_reset_event(struct hns3_hw *hw); static inline bool diff --git a/drivers/net/hns3/hns3_intr.c b/drivers/net/hns3/hns3_intr.c index baf5f58e9e..c5a3e3797c 100644 --- a/drivers/net/hns3/hns3_intr.c +++ b/drivers/net/hns3/hns3_intr.c @@ -2749,6 +2749,7 @@ hns3_reset_post(struct hns3_adapter *hns) /* IMP will wait ready flag before reset */ hns3_notify_reset_ready(hw, false); hns3_clear_reset_level(hw, &hw->reset.pending); + hns3_clear_reset_event(hw); __atomic_store_n(&hns->hw.reset.resetting, 0, __ATOMIC_RELAXED); hw->reset.attempts = 0; hw->reset.stats.success_cnt++; @@ -2798,6 +2799,7 @@ hns3_reset_fail_handle(struct hns3_adapter *hns) struct timeval tv; hns3_clear_reset_level(hw, &hw->reset.pending); + hns3_clear_reset_event(hw); if (hns3_reset_err_handle(hns)) { hw->reset.stage = RESET_STAGE_PREWAIT; hns3_schedule_reset(hns); -- 2.25.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2023-12-11 17:56:23.963748300 +0800 +++ 0024-net-hns3-fix-IMP-or-global-reset.patch 2023-12-11 17:56:22.927652300 +0800 @@ -1 +1 @@ -From 1eee1ea75c0eadaea6dde368b289cf0acf6a1190 Mon Sep 17 00:00:00 2001 +From 9a62d06e64ab1c7708c2197d23f198eb3daaccce Mon Sep 17 00:00:00 2001 @@ -4,0 +5,3 @@ +Cc: Xueming Li + +[ upstream commit 1eee1ea75c0eadaea6dde368b289cf0acf6a1190 ] @@ -25 +27,0 @@ -Cc: stable@dpdk.org @@ -35 +37 @@ -index 18afc0fa0a..bb9dde9c5b 100644 +index 576cc56216..036062947d 100644 @@ -38 +40 @@ -@@ -215,6 +215,30 @@ out: +@@ -219,6 +219,30 @@ out: @@ -69 +71 @@ -@@ -287,6 +311,34 @@ hns3_delay_before_clear_event_cause(struct hns3_hw *hw, uint32_t event_type, uin +@@ -291,6 +315,34 @@ hns3_delay_before_clear_event_cause(struct hns3_hw *hw, uint32_t event_type, uin @@ -104 +106 @@ -@@ -299,6 +351,9 @@ hns3_interrupt_handler(void *param) +@@ -303,6 +355,9 @@ hns3_interrupt_handler(void *param) @@ -114 +116 @@ -@@ -327,7 +382,11 @@ hns3_interrupt_handler(void *param) +@@ -331,7 +386,11 @@ hns3_interrupt_handler(void *param) @@ -127 +129 @@ -@@ -5489,7 +5548,7 @@ is_pf_reset_done(struct hns3_hw *hw) +@@ -5523,7 +5582,7 @@ is_pf_reset_done(struct hns3_hw *hw) @@ -136 +138 @@ -@@ -5501,11 +5560,9 @@ hns3_detect_reset_event(struct hns3_hw *hw) +@@ -5535,11 +5594,9 @@ hns3_detect_reset_event(struct hns3_hw *hw) @@ -148 +150 @@ -@@ -5513,13 +5570,16 @@ hns3_detect_reset_event(struct hns3_hw *hw) +@@ -5547,13 +5604,16 @@ hns3_detect_reset_event(struct hns3_hw *hw) @@ -166 +168 @@ -@@ -5528,17 +5588,17 @@ hns3_is_reset_pending(struct hns3_adapter *hns) +@@ -5562,17 +5622,17 @@ hns3_is_reset_pending(struct hns3_adapter *hns) @@ -194 +196 @@ -index c85a6912ad..0e8d043704 100644 +index 58572948fe..f86512bd35 100644 @@ -197 +199 @@ -@@ -1033,6 +1033,7 @@ void hns3_update_linkstatus_and_event(struct hns3_hw *hw, bool query); +@@ -1029,6 +1029,7 @@ void hns3_update_linkstatus_and_event(struct hns3_hw *hw, bool query); @@ -203 +204,0 @@ - const char *hns3_get_media_type_name(uint8_t media_type); @@ -204,0 +206 @@ + static inline bool