From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E1287A09FF; Thu, 24 Dec 2020 08:53:38 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9BF32CA10; Thu, 24 Dec 2020 08:53:37 +0100 (CET) Received: from szxga07-in.huawei.com (szxga07-in.huawei.com [45.249.212.35]) by dpdk.org (Postfix) with ESMTP id AADC3CA08 for ; Thu, 24 Dec 2020 08:53:35 +0100 (CET) Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.59]) by szxga07-in.huawei.com (SkyGuard) with ESMTP id 4D1j3h4T8Kz7Hcx for ; Thu, 24 Dec 2020 15:52:48 +0800 (CST) Received: from [10.67.103.128] (10.67.103.128) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.498.0; Thu, 24 Dec 2020 15:53:28 +0800 To: References: <1608504422-29220-1-git-send-email-rahul.lakkireddy@chelsio.com> <1608504422-29220-2-git-send-email-rahul.lakkireddy@chelsio.com> From: "Min Hu (Connor)" Message-ID: <6956d15d-d64d-2480-fd27-12bceccfb249@huawei.com> Date: Thu, 24 Dec 2020 15:53:29 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.3.1 MIME-Version: 1.0 In-Reply-To: <1608504422-29220-2-git-send-email-rahul.lakkireddy@chelsio.com> Content-Type: text/plain; charset="gbk"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.67.103.128] X-CFilter-Loop: Reflected Subject: Re: [dpdk-dev] [PATCH] app/testpmd: increase array for fetching supported FEC caps X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" ÔÚ 2020/12/21 6:47, Rahul Lakkireddy дµÀ: > From: Karra Satwik > > Request the driver for number of entries in the FEC caps > array and then dynamically allocate the array. > > Signed-off-by: Karra Satwik > Signed-off-by: Rahul Lakkireddy > --- > app/test-pmd/cmdline.c | 29 ++++++++++++++++++++--------- > 1 file changed, 20 insertions(+), 9 deletions(-) > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c > index 2ccbaa039..d7a90d55e 100644 > --- a/app/test-pmd/cmdline.c > +++ b/app/test-pmd/cmdline.c > @@ -16263,29 +16263,40 @@ cmd_show_fec_capability_parsed(void *parsed_result, > __rte_unused struct cmdline *cl, > __rte_unused void *data) > { > -#define FEC_CAP_NUM 2 > struct cmd_show_fec_capability_result *res = parsed_result; > - struct rte_eth_fec_capa speed_fec_capa[FEC_CAP_NUM]; > - unsigned int num = FEC_CAP_NUM; > - unsigned int ret_num; > - int ret; > + struct rte_eth_fec_capa *speed_fec_capa; > + int num, ret; > > if (!rte_eth_dev_is_valid_port(res->cmd_pid)) { > printf("Invalid port id %u\n", res->cmd_pid); > return; > } > > - ret = rte_eth_fec_get_capability(res->cmd_pid, speed_fec_capa, num); Hi, the type of num is "unsigned int" in rte_eth_fec_get_capability, please keep in accordance with it. > + ret = rte_eth_fec_get_capability(res->cmd_pid, NULL, 0); > if (ret == -ENOTSUP) { > printf("Function not implemented\n"); > return; > } else if (ret < 0) { > - printf("Get FEC capability failed\n"); > + printf("Get FEC capability failed: %d\n", ret); > + return; > + } > + > + num = ret; > + speed_fec_capa = calloc(num, sizeof(*speed_fec_capa)); > + if (!speed_fec_capa) { > + printf("Failed to alloc FEC capability buffer\n"); > return; > } > > - ret_num = (unsigned int)ret; > - show_fec_capability(ret_num, speed_fec_capa); > + ret = rte_eth_fec_get_capability(res->cmd_pid, speed_fec_capa, num); > + if (ret < 0) { > + printf("Error getting FEC capability: %d\n", ret); > + goto out; > + } > + > + show_fec_capability(num, speed_fec_capa); > +out: > + free(speed_fec_capa); > } > > cmdline_parse_token_string_t cmd_show_fec_capability_show = >