Received: by 2002:a4a:311b:0:0:0:0:0 with SMTP id k27-v6csp4694934ooa; Tue, 14 Aug 2018 09:17:18 -0700 (PDT) X-Google-Smtp-Source: AA+uWPype4KkIC4K1qm2yBC2/Z1/Z7QeCsAuWgw5WElyjFgY9L2G7z6ydwnt+Qr3KTXrD+h7Y5fh X-Received: by 2002:a63:a347:: with SMTP id v7-v6mr21165411pgn.182.1534263438432; Tue, 14 Aug 2018 09:17:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534263438; cv=none; d=google.com; s=arc-20160816; b=c4EIfe34RegP0sB4rg31sRHWVylipq4OE4Q1emENsLkvKYIA7oe44aQXav053S8p9p p6uPVxxDufx0ozM/t+hXCv9AECAftRYbfRvd00P0G7uD4bqH2gwrRL2Z++p9xq1Jt5mk S1DrOLk9sbptTyXY738MkZcXj3ckYCeWelSAlEmFlZzr7O3fYiDb2vwcEPWOtG9WDIh0 qIRcwvDA4e/8ttxA7T1HfdiL81uLLaOBJgwuveIhbUUDtcgM9N2hwurgc4dsnLszBBcP vB0HnW0f4Gu5urTkG+N6DKPCQh+t6nFaUv6F3ilCfaF4HZiLULrN4zcHU7ezQ57sKhcY jiTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:arc-authentication-results; bh=XN6y/R83Zy/haI0Xu2bOH3L3Z4rzkjMmHhAL/1fKFx8=; b=Stsqf5vwB/F9ysA+dFYRnQphtUg6Xi47qBhQP5SRiF9jUFXf4LTNYmlNU10Jb2E31s oNGLyAA7zbi7Mn1qjkkXfqvD0lwxtzSCF/ukfOjDSGzr8PKlfvwuNZOOCSr8DKfP4Rlh aNi2s5aOqwVO+UzH0ATj/I5WXbNVRFJnjwoWclW2crTT/L9rYQCZuksMCLBMXIIi1FOi bPX9PPwf4bGLVeIqLsXYC2fBOoZy8Ag1rm/SiZTc3Gyo2y8AxeYlxGrS6kq9erK3BtYK SuiBKFhnP08LHcHwF3LFo9EjH+B1SHJYuN18oSCEJQMMCXYxrN7RvKHm7dMpbnNqZRzh Myzg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 22-v6si22195688pfl.220.2018.08.14.09.17.03; Tue, 14 Aug 2018 09:17:18 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733033AbeHNTCK (ORCPT + 99 others); Tue, 14 Aug 2018 15:02:10 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:11108 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1733022AbeHNTCJ (ORCPT ); Tue, 14 Aug 2018 15:02:09 -0400 Received: from DGGEMS402-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id 8FA2DB24E8362; Wed, 15 Aug 2018 00:14:16 +0800 (CST) Received: from S00293818-DELL1.china.huawei.com (10.202.226.54) by DGGEMS402-HUB.china.huawei.com (10.3.19.202) with Microsoft SMTP Server id 14.3.399.0; Wed, 15 Aug 2018 00:14:11 +0800 From: Salil Mehta To: CC: , , , , , , , Yunsheng Lin Subject: [PATCH V2 net-next 5/8] net: hns3: Fix desc num set to default when setting channel Date: Tue, 14 Aug 2018 17:13:16 +0100 Message-ID: <20180814161319.16392-6-salil.mehta@huawei.com> X-Mailer: git-send-email 2.8.3 In-Reply-To: <20180814161319.16392-1-salil.mehta@huawei.com> References: <20180814161319.16392-1-salil.mehta@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.202.226.54] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Yunsheng Lin When user set the channel num using "ethtool -L ethX", the desc num of BD will set to default value, which will cause desc num set by user lost problem. This patch fixes it by restoring the desc num set by user when setting channel num. Fixes: 09f2af6405b8 ("net: hns3: add support to modify tqps number") Signed-off-by: Yunsheng Lin Signed-off-by: Peng Li Signed-off-by: Salil Mehta --- .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c index 2e9c8b9..8577dfc 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c @@ -1267,35 +1267,37 @@ static int hclge_map_tqps_to_func(struct hclge_dev *hdev, u16 func_id, return ret; } -static int hclge_assign_tqp(struct hclge_vport *vport, - struct hnae3_queue **tqp, u16 num_tqps) +static int hclge_assign_tqp(struct hclge_vport *vport) { + struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo; struct hclge_dev *hdev = vport->back; int i, alloced; for (i = 0, alloced = 0; i < hdev->num_tqps && - alloced < num_tqps; i++) { + alloced < kinfo->num_tqps; i++) { if (!hdev->htqp[i].alloced) { hdev->htqp[i].q.handle = &vport->nic; hdev->htqp[i].q.tqp_index = alloced; - tqp[alloced] = &hdev->htqp[i].q; + hdev->htqp[i].q.desc_num = kinfo->num_desc; + kinfo->tqp[alloced] = &hdev->htqp[i].q; hdev->htqp[i].alloced = true; alloced++; } } - vport->alloc_tqps = num_tqps; + vport->alloc_tqps = kinfo->num_tqps; return 0; } -static int hclge_knic_setup(struct hclge_vport *vport, u16 num_tqps) +static int hclge_knic_setup(struct hclge_vport *vport, + u16 num_tqps, u16 num_desc) { struct hnae3_handle *nic = &vport->nic; struct hnae3_knic_private_info *kinfo = &nic->kinfo; struct hclge_dev *hdev = vport->back; int i, ret; - kinfo->num_desc = hdev->num_desc; + kinfo->num_desc = num_desc; kinfo->rx_buf_len = hdev->rx_buf_len; kinfo->num_tc = min_t(u16, num_tqps, hdev->tm_info.num_tc); kinfo->rss_size @@ -1322,7 +1324,7 @@ static int hclge_knic_setup(struct hclge_vport *vport, u16 num_tqps) if (!kinfo->tqp) return -ENOMEM; - ret = hclge_assign_tqp(vport, kinfo->tqp, kinfo->num_tqps); + ret = hclge_assign_tqp(vport); if (ret) dev_err(&hdev->pdev->dev, "fail to assign TQPs %d.\n", ret); @@ -1388,7 +1390,7 @@ static int hclge_vport_setup(struct hclge_vport *vport, u16 num_tqps) nic->numa_node_mask = hdev->numa_node_mask; if (hdev->ae_dev->dev_type == HNAE3_DEV_KNIC) { - ret = hclge_knic_setup(vport, num_tqps); + ret = hclge_knic_setup(vport, num_tqps, hdev->num_desc); if (ret) { dev_err(&hdev->pdev->dev, "knic setup failed %d\n", ret); @@ -5936,7 +5938,7 @@ static int hclge_set_channels(struct hnae3_handle *handle, u32 new_tqps_num) /* Free old tqps, and reallocate with new tqp number when nic setup */ hclge_release_tqp(vport); - ret = hclge_knic_setup(vport, new_tqps_num); + ret = hclge_knic_setup(vport, new_tqps_num, kinfo->num_desc); if (ret) { dev_err(&hdev->pdev->dev, "setup nic fail, ret =%d\n", ret); return ret; -- 2.7.4