From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2580EA0C43; Mon, 10 May 2021 19:32:03 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9AB4740140; Mon, 10 May 2021 19:32:02 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 9BA864003E; Mon, 10 May 2021 19:31:59 +0200 (CEST) IronPort-SDR: f3x7QuUiMcgSfVKHmOt6Iu3r3yvL1EznIF7+ZHoe1/iV1Aaq88GPtRvhYeyCVHe+xVl1MGwjmW NvPRvStDfhEQ== X-IronPort-AV: E=McAfee;i="6200,9189,9980"; a="220197423" X-IronPort-AV: E=Sophos;i="5.82,287,1613462400"; d="scan'208";a="220197423" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 May 2021 10:31:57 -0700 IronPort-SDR: C4Aj/60w2DbufMHTfQXUHIpKUwLZpN6AXLPth09/mSZIDWRph/yV5Pg/FxKXPx9OYdrMCEjinn rouPN3MSbO6Q== X-IronPort-AV: E=Sophos;i="5.82,287,1613462400"; d="scan'208";a="470860137" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.213.208.203]) ([10.213.208.203]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 May 2021 10:31:44 -0700 To: "Wang, Haiyue" , "Yang, Qiming" , "Zhang, Qi Z" , "Stillwell Jr, Paul M" , "Lu, Wenzhuo" , "Rong, Leyi" , "Shukla, Shivanshu" Cc: "dev@dpdk.org" , "stable@dpdk.org" , Kevin Traynor , Ajit Khaparde References: <20210510150319.1496105-1-ferruh.yigit@intel.com> <20210510150319.1496105-3-ferruh.yigit@intel.com> From: Ferruh Yigit X-User: ferruhy Message-ID: <4e228093-74a3-6051-83f5-e19ffa8fc82c@intel.com> Date: Mon, 10 May 2021 18:31:42 +0100 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH 3/4] net/ice/base: fix build with gcc11 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" On 5/10/2021 6:13 PM, Wang, Haiyue wrote: >> -----Original Message----- >> From: Wang, Haiyue >> Sent: Tuesday, May 11, 2021 01:05 >> To: Ferruh Yigit ; Yang, Qiming ; Zhang, Qi Z >> ; Stillwell Jr, Paul M ; Lu, Wenzhuo >> ; Rong, Leyi ; Shukla, Shivanshu >> >> Cc: Yigit, Ferruh ; dev@dpdk.org; stable@dpdk.org; Kevin Traynor >> ; Ajit Khaparde >> Subject: RE: [dpdk-dev] [PATCH 3/4] net/ice/base: fix build with gcc11 >> >>> -----Original Message----- >>> From: dev On Behalf Of Ferruh Yigit >>> Sent: Monday, May 10, 2021 23:03 >>> To: Yang, Qiming ; Zhang, Qi Z ; Stillwell Jr, Paul M >>> ; Lu, Wenzhuo ; Rong, Leyi >> ; >>> Shukla, Shivanshu >>> Cc: Yigit, Ferruh ; dev@dpdk.org; stable@dpdk.org; Kevin Traynor >>> ; Ajit Khaparde >>> Subject: [dpdk-dev] [PATCH 3/4] net/ice/base: fix build with gcc11 >>> >>> Reproduced with '--buildtype=debugoptimized' config, >>> compiler version: gcc (GCC) 12.0.0 20210509 (experimental) >>> >>> There are multiple build errors, like: >>> ../drivers/net/ice/base/ice_switch.c: In function ‘ice_add_marker_act’: >>> ../drivers/net/ice/base/ice_switch.c:3727:15: >>> warning: array subscript ‘struct ice_aqc_sw_rules_elem[0]’ >>> is partly outside array bounds of ‘unsigned char[52]’ >>> [-Warray-bounds] >>> 3727 | lg_act->type = CPU_TO_LE16(ICE_AQC_SW_RULES_T_LG_ACT); >>> | ^~ >>> In file included from ../drivers/net/ice/base/ice_type.h:52, >>> from ../drivers/net/ice/base/ice_common.h:8, >>> from ../drivers/net/ice/base/ice_switch.h:8, >>> from ../drivers/net/ice/base/ice_switch.c:5: >>> ../drivers/net/ice/base/ice_osdep.h:209:29: >>> note: referencing an object of size 52 allocated by ‘rte_zmalloc’ >>> 209 | #define ice_malloc(h, s) rte_zmalloc(NULL, s, 0) >>> | ^~~~~~~~~~~~~~~~~~~~~~~ >>> ../drivers/net/ice/base/ice_switch.c:3720:50: >>> note: in expansion of macro ‘ice_malloc’ >>> lg_act = (struct ice_aqc_sw_rules_elem *)ice_malloc(hw, rules_size); >>> >>> These errors are mainly because allocated memory is cast to >>> "struct ice_aqc_sw_rules_elem *" but allocated size is less than the size >>> of "struct ice_aqc_sw_rules_elem". >>> >>> "struct ice_aqc_sw_rules_elem" has multiple other structs has unions, >>> based on which one is used allocated memory being less than the size of >>> "struct ice_aqc_sw_rules_elem" is logically correct but compiler is >>> complaining about it. >>> >>> As a solution making sure allocated memory size is at least size of >>> "struct ice_aqc_sw_rules_elem". >>> The function to use the struct is 'ice_aq_sw_rules()', and it already has >>> parameter for size of the rule, allocating more than needed shouldn't >>> cause any problem. >>> >>> Fixes: c7dd15931183 ("net/ice/base: add virtual switch code") >>> Fixes: 02acdce2f553 ("net/ice/base: add MAC filter with marker and counter") >>> Fixes: f89aa3affa9e ("net/ice/base: support removing advanced rule") >>> Cc: stable@dpdk.org >>> >>> Signed-off-by: Ferruh Yigit >>> --- >>> Cc: paul.m.stillwell.jr@intel.com >>> Cc: qi.z.zhang@intel.com >>> Cc: leyi.rong@intel.com >>> Cc: Kevin Traynor >>> Cc: Ajit Khaparde >>> --- >>> drivers/net/ice/base/ice_switch.c | 30 +++++++++++++++++++++++------- >>> 1 file changed, 23 insertions(+), 7 deletions(-) >> >> GCC bug ? >> >> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98266 >> >> Bug 98266 - [11 Regression] bogus array subscript is partly outside array bounds on virtual >> inheritance >> > > Disable this gcc warning ? ;-) > That is an option as well but I prefer to fix it warning as much as possible (unless false positive warnings). What do you think about the patch? Do you see any problem with it? > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=44720996e2d79e47d508b0abe99b931a726a3197 > > gcc-10: disable 'array-bounds' warning for now > >> >> >>> -- >>> 2.31.1 >