From patchwork Sat Jun 6 03:46:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wei Hu (Xavier)" X-Patchwork-Id: 70915 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 59E04A0350; Sat, 6 Jun 2020 05:48:11 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 329F91D51A; Sat, 6 Jun 2020 05:48:11 +0200 (CEST) Received: from huawei.com (szxga05-in.huawei.com [45.249.212.191]) by dpdk.org (Postfix) with ESMTP id AFAE81C13A for ; Sat, 6 Jun 2020 05:48:09 +0200 (CEST) Received: from DGGEMS401-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id 578FC6871452D5E11758 for ; Sat, 6 Jun 2020 11:48:08 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by DGGEMS401-HUB.china.huawei.com (10.3.19.201) with Microsoft SMTP Server id 14.3.487.0; Sat, 6 Jun 2020 11:48:00 +0800 From: "Wei Hu (Xavier)" To: CC: , Date: Sat, 6 Jun 2020 11:46:37 +0800 Message-ID: <1591415197-10432-1-git-send-email-xavier.huwei@huawei.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [10.69.192.56] X-CFilter-Loop: Reflected Subject: [dpdk-dev] [PATCH v3] app/testpmd: fix passing negative parameter to strerror 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" Currently, there are coverity defect warnings those were found from the public coverity. https://scan.coverity.com/projects/dpdk-data-plane-development-kit Coverity issue: In nic_stats_clear function: CID 358450 (#1 of 1): Argument cannot be negative (NEGATIVE_RETURNS) 5. negative_returns: ret is passed to a parameter that cannot be negative. CID 358449 (#1 of 1): Argument cannot be negative (NEGATIVE_RETURNS) 6. negative_returns: ret is passed to a parameter that cannot be negative. In nic_xstats_clear function: CID 358437 (#1 of 1): Argument cannot be negative (NEGATIVE_RETURNS) 6. negative_returns: ret is passed to a parameter that cannot be negative. CID 349913 (#1 of 1): Argument cannot be negative (NEGATIVE_RETURNS) 5. negative_returns: ret is passed to a parameter that cannot be negative. This patch fixes them by passing '-ret' to the function strerror() when ret is negative. Fixes: da328f7f115a ("ethdev: change xstats reset function to return int") Fixes: 9eb974221f44 ("app/testpmd: fix statistics after reset") Cc: stable@dpdk.org Signed-off-by: Wei Hu (Xavier) Reviewed-by: Ferruh Yigit --- v2 -> v3: 1. replace the coverity warning infromation with the ones found from the public coverity in the commit log. v1 -> v2: 1. add a negative check for ret. 2. remove the internal coverity IDs in the commit log. 3. update the fixed patch's commit id and titile. --- app/test-pmd/config.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 5381207..016bcb0 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -244,12 +244,14 @@ nic_stats_clear(portid_t port_id) ret = rte_eth_stats_reset(port_id); if (ret != 0) { printf("%s: Error: failed to reset stats (port %u): %s", - __func__, port_id, strerror(ret)); + __func__, port_id, strerror(-ret)); return; } ret = rte_eth_stats_get(port_id, &ports[port_id].stats); if (ret != 0) { + if (ret < 0) + ret = -ret; printf("%s: Error: failed to get stats (port %u): %s", __func__, port_id, strerror(ret)); return; @@ -333,12 +335,14 @@ nic_xstats_clear(portid_t port_id) ret = rte_eth_xstats_reset(port_id); if (ret != 0) { printf("%s: Error: failed to reset xstats (port %u): %s", - __func__, port_id, strerror(ret)); + __func__, port_id, strerror(-ret)); return; } ret = rte_eth_stats_get(port_id, &ports[port_id].stats); if (ret != 0) { + if (ret < 0) + ret = -ret; printf("%s: Error: failed to get stats (port %u): %s", __func__, port_id, strerror(ret)); return;