From patchwork Mon May 11 16:07:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ferruh Yigit X-Patchwork-Id: 70087 X-Patchwork-Delegate: thomas@monjalon.net 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 37F75A0350; Mon, 11 May 2020 18:07:46 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E0E621C118; Mon, 11 May 2020 18:07:45 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id A8DE71C10B for ; Mon, 11 May 2020 18:07:44 +0200 (CEST) IronPort-SDR: Dt4FW4EjQvHHsP43tSxpE9h+q5aJXrInpdyba7st7Zx2Cs27DoNosQt45Ew7Pw7cuUXV0vhTH/ VRpWHdsLa5Gw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 May 2020 09:07:29 -0700 IronPort-SDR: CiFGnxUQ22G5lgs3EKkQ612ncDCN/tgPvxr6IENGzVe0oVCxvMN//jv9QMIab2LPdvNUu+7kcb bCYWj9s4pxvQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,380,1583222400"; d="scan'208";a="265201371" Received: from silpixa00399752.ir.intel.com (HELO silpixa00399752.ger.corp.intel.com) ([10.237.222.180]) by orsmga006.jf.intel.com with ESMTP; 11 May 2020 09:07:28 -0700 From: Ferruh Yigit To: Honnappa Nagarahalli , Konstantin Ananyev Cc: dev@dpdk.org, Ferruh Yigit , Thomas Monjalon , David Marchand Date: Mon, 11 May 2020 17:07:22 +0100 Message-Id: <20200511160725.1497902-1-ferruh.yigit@intel.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20200507120259.2197813-1-ferruh.yigit@intel.com> References: <20200507120259.2197813-1-ferruh.yigit@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v3 1/4] ring: fix build for gcc O1 optimization 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" Can be reproduced with "make EXTRA_CFLAGS='-O1'" command using gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2) Two build errors: 1) In file included from .../build/include/rte_ring_elem.h:1093, from .../lib/librte_rcu/rte_rcu_qsbr.c:21: ../lib/librte_rcu/rte_rcu_qsbr.c: In function ‘rte_rcu_qsbr_dq_reclaim’: .../build/include/rte_ring_peek.h:282:22: error: ‘avail’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 282 | *available = avail - n; | ~~~~~~^~~ ./build/include/rte_ring_peek.h:259:11: note: ‘avail’ was declared here 259 | uint32_t avail, head, next; | ^~~~~ 2) In file included from .../build/include/rte_ring_elem.h:1093, from .../build/include/rte_ring.h:405, from .../app/test/test_ring_stress.h:13, from .../app/test/test_ring_stress_impl.h:5, from .../app/test/test_ring_peek_stress.c:5: .../app/test/test_ring_peek_stress.c: In function ‘_st_ring_enqueue_bulk’: .../build/include/rte_ring_peek.h:80:22: error: ‘free’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 80 | *free_space = free - n; | ~~~~~^~~ .../build/include/rte_ring_peek.h:60:11: note: ‘free’ was declared here 60 | uint32_t free, head, next; | ^~~~ The cases shouldn't be hit, and it looks like there is already logic error if it has been hit, but assigning 'avail' & 'free' to '0' to fix the build error. Signed-off-by: Ferruh Yigit Acked-by: Konstantin Ananyev --- lib/librte_ring/rte_ring_peek.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/librte_ring/rte_ring_peek.h b/lib/librte_ring/rte_ring_peek.h index d5e6ea1cf3..45f707dc7e 100644 --- a/lib/librte_ring/rte_ring_peek.h +++ b/lib/librte_ring/rte_ring_peek.h @@ -74,6 +74,7 @@ __rte_ring_do_enqueue_start(struct rte_ring *r, uint32_t n, /* unsupported mode, shouldn't be here */ RTE_ASSERT(0); n = 0; + free = 0; } if (free_space != NULL) @@ -273,6 +274,7 @@ __rte_ring_do_dequeue_start(struct rte_ring *r, void *obj_table, /* unsupported mode, shouldn't be here */ RTE_ASSERT(0); n = 0; + avail = 0; } if (n != 0)