Received: by 2002:a05:7412:a9a2:b0:e2:908c:2ebd with SMTP id o34csp1552031rdh; Fri, 27 Oct 2023 20:03:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHj8JwXmeuCoIRpm6VsdUTjcadH8DW2u+xQ3cZku7XLOS9d+LqpNYSgP0mtOV5kMUaU7dyi X-Received: by 2002:a17:90a:bf07:b0:27d:1df4:26f3 with SMTP id c7-20020a17090abf0700b0027d1df426f3mr3829264pjs.15.1698462217508; Fri, 27 Oct 2023 20:03:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698462217; cv=none; d=google.com; s=arc-20160816; b=LO1QcQ5AFcO1RcNwgc9oq+aoVN13CBlbUXFgqN8/JUaAiRk2ypEhqUTFhbJ95av9Cb NQFpxREmYVVAzTzOlUTXVt63z6purbO8fiSHI8DD+Eaho63nDqvBrTCrTxH9XPr81JAd wXZWhUWgV5KsyDM+DixtJisX7YBH8ukgr2wl8rqMt9nym02FG/pNof5Hoyj/StpLitOa wtRfvQsy15Bv2NXqeQN4tlYRct0obQabeNH+lrRPHo9jdHqjpTEy80I3DAKSWgaSbmfD A+4dezxqtI8iKWeZVxzGoORuTLN7mSJ8Yasw7bgy2IBd/2ofcYuBx+nIcsd2i0Xh/3mD D39w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=vm9s6AqAcxU1mvvxm1FDtsm51pilGgJp5MNRQAuHfC0=; fh=28Gsh8p/Rrgoh0ZJgxMb30MiNZzzGa/AucmCEg5DMJI=; b=0uzEsGZfJp56RNXJo5KDOAs5HxVQu9v/RBOL+/sYhWLPCoqYydfSlsivXufBFjTRjK U9RXN9trRNpYyzXalSPSZBcb8JYIZIg3VHvcMxCUc5A33mrohXqKDBIVP5DARdTTsl0e 2xb2wtsndeFCKHNJEOmcR7jQSJ+drNlJs5Eu6dM0WT3PUQUQe5JLOQhGfC0yhjbEfcco HzsSKy8OQlnJT4x8U1Erbah6fXY9eft4gTDCFBm4VLq9uQ+6WTH/TE7JaIra3zGtoEdi ProFJeWI735vCAGHk17wUmcTim+gwSzyW/NMbAHVwGIJdcV0pQ1uX7sJgdtDJLTE5/0e aCDg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id nn1-20020a17090b38c100b0027ff63ac6c6si1863767pjb.28.2023.10.27.20.03.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Oct 2023 20:03:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 65704825FF38; Fri, 27 Oct 2023 20:03:34 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233114AbjJ1DDI (ORCPT + 99 others); Fri, 27 Oct 2023 23:03:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57722 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233163AbjJ1DCn (ORCPT ); Fri, 27 Oct 2023 23:02:43 -0400 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 286CE121; Fri, 27 Oct 2023 20:02:41 -0700 (PDT) Received: from kwepemm000007.china.huawei.com (unknown [172.30.72.57]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4SHPP73MP7zPnlV; Sat, 28 Oct 2023 10:58:35 +0800 (CST) Received: from localhost.localdomain (10.67.165.2) by kwepemm000007.china.huawei.com (7.193.23.189) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.31; Sat, 28 Oct 2023 11:02:38 +0800 From: Jijie Shao To: , , , , , CC: , , , , , Subject: [PATCH net 7/7] net: hns3: fix VF wrong speed and duplex issue Date: Sat, 28 Oct 2023 10:59:17 +0800 Message-ID: <20231028025917.314305-8-shaojijie@huawei.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20231028025917.314305-1-shaojijie@huawei.com> References: <20231028025917.314305-1-shaojijie@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.67.165.2] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To kwepemm000007.china.huawei.com (7.193.23.189) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Fri, 27 Oct 2023 20:03:35 -0700 (PDT) If PF is down, firmware will returns 10 Mbit/s rate and half-duplex mode when PF queries the port information from firmware. After imp reset command is executed, PF status changes to down, and PF will query link status and updates port information from firmware in a periodic scheduled task. However, there is a low probability that port information is updated when PF is down, and then PF link status changes to up. In this case, PF synchronizes incorrect rate and duplex mode to VF. This patch fixes it by updating port information before PF synchronizes the rate and duplex to the VF when PF changes to up. Fixes: 18b6e31f8bf4 ("net: hns3: PF add support for pushing link status to VFs") Signed-off-by: Jijie Shao --- drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c index 7d3f4d281704..2b8f8f8c120d 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c @@ -61,6 +61,7 @@ static void hclge_sync_fd_table(struct hclge_dev *hdev); static void hclge_update_fec_stats(struct hclge_dev *hdev); static int hclge_mac_link_status_wait(struct hclge_dev *hdev, int link_ret, int wait_cnt); +static int hclge_update_port_info(struct hclge_dev *hdev); static struct hnae3_ae_algo ae_algo; @@ -3043,6 +3044,9 @@ static void hclge_update_link_status(struct hclge_dev *hdev) if (state != hdev->hw.mac.link) { hdev->hw.mac.link = state; + if (state == HCLGE_LINK_STATUS_UP) + hclge_update_port_info(hdev); + client->ops->link_status_change(handle, state); hclge_config_mac_tnl_int(hdev, state); if (rclient && rclient->ops->link_status_change) -- 2.30.0