From patchwork Tue Feb 15 23:00:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 107670 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 55161A00C5; Wed, 16 Feb 2022 00:01:08 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D58C741142; Wed, 16 Feb 2022 00:01:05 +0100 (CET) Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) by mails.dpdk.org (Postfix) with ESMTP id A8CF841142 for ; Wed, 16 Feb 2022 00:01:04 +0100 (CET) Received: by mail-pg1-f181.google.com with SMTP id d16so392724pgd.9 for ; Tue, 15 Feb 2022 15:01:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=60EbKOV+AQFZ961Tcrtc1mYU0iVRDKrHkSwKARumyEY=; b=5/8926etA58if29xHPi6Twd0dUKmNFcQpc0vINHESczh6ir2kRfc08ycPs+SUcupCY d05OVVIHKAKEL/lXhmm4atlpp54s7Zol0cpW81/I5RojcLbDR/iNRCdt6xEzL1y0ZvYl Z9lnIYCufD14s4ah3tu8rFtg0HMsZImJdnA/qnZ2DgghxuurQ8qX2aM54Io2KBcc3/0R S9ff55aBj8WnGe7/t5BmnIBCRE+Npj8rW35jdEVadcXbMOidDhVeR2txDSOoSEUolGyf UC53RIzS8PsxqGJWghxEsPsM+0WYAoYwQxlpRBFBhuYN6BkWIYwBV8GJ9wZUtBJhx0sD gpFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=60EbKOV+AQFZ961Tcrtc1mYU0iVRDKrHkSwKARumyEY=; b=hYjxDTdo0IZ7LSY6aHeSGlTZvxCy5GRQVZMV49pLo9kooMcv1yzNZWuWfnpYryUUIV fOqsEh2SLrTfe9YiD8IGG0o/8upnF9Ez8GSKlsieYC85MHxJ+j9309sTLiwfu/p2gaMq keqCo2kQGFpj8M5fCcAW3XQX6xdiGhEAarvA2mTEqBw2CJmGoQZcdFG+KNR6TL3rRRY6 Byu46BMT2z7CA8Ev+dy/JRm60XgPDgenraQvYpZzGpnvfbyU5bqwSO/uYNJ2hFqwk7eO tvKstMEAiiS5Bgdtcz0JzbJ1LAUAtS8oo0y0WiJ7MYzEfIxUIKPeTi8k4sWO3Gnpb7sF hu/w== X-Gm-Message-State: AOAM5328uedFTwRPTHVCEkpd1ZCq8EKBXz1s8Au0rGmalVRuOtwHIqwY GwgYusEoDcmehpqhbXuQggIkg/k9cMjj09Fs X-Google-Smtp-Source: ABdhPJxjdkCGxV7JajagIVp3P4Shu1+4JuVCUEhfOt0lCOyoM8/os/hPJNOYipWrb7mB6zLOZIpJMQ== X-Received: by 2002:a63:5662:: with SMTP id g34mr905563pgm.569.1644966062006; Tue, 15 Feb 2022 15:01:02 -0800 (PST) Received: from hermes.local (204-195-112-199.wavecable.com. [204.195.112.199]) by smtp.gmail.com with ESMTPSA id h25sm38204574pfn.208.2022.02.15.15.01.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Feb 2022 15:01:01 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger Subject: [RFC 1/2] devtools: add script to check for zero length array Date: Tue, 15 Feb 2022 15:00:57 -0800 Message-Id: <20220215230058.64760-2-stephen@networkplumber.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220215230058.64760-1-stephen@networkplumber.org> References: <20220215230058.64760-1-stephen@networkplumber.org> MIME-Version: 1.0 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 Use the same script as Linux kernel to find and replace zero length arrays at end of structures. Flexible arrays were introduced in C99 and help catch some obvious errors (like incorrect sizeof). Signed-off-by: Stephen Hemminger --- devtools/cocci/zerolengtharray.cocci | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 devtools/cocci/zerolengtharray.cocci diff --git a/devtools/cocci/zerolengtharray.cocci b/devtools/cocci/zerolengtharray.cocci new file mode 100644 index 000000000000..50d8b00716ae --- /dev/null +++ b/devtools/cocci/zerolengtharray.cocci @@ -0,0 +1,17 @@ +// +// Replace all older style of one-element or zero length arrays +// with current flexible member arraya +// + +@@ +identifier S, member, array; +type T1, T2; +@@ + +struct S { + ... + T1 member; + T2 array[ +- 0 + ]; +}; From patchwork Tue Feb 15 23:00:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 107671 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C7AA0A00C5; Wed, 16 Feb 2022 00:01:13 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BEA2B41153; Wed, 16 Feb 2022 00:01:07 +0100 (CET) Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) by mails.dpdk.org (Postfix) with ESMTP id 54B88410FB for ; Wed, 16 Feb 2022 00:01:05 +0100 (CET) Received: by mail-pl1-f182.google.com with SMTP id w20so459549plq.12 for ; Tue, 15 Feb 2022 15:01:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5U9SqkJeGjJJbD/W4RLcv0iDmA/VUUYhXethC3Y+huI=; b=hevCm8Jsv7De+LvzJKvBSGCJxzwY/8jDFBDRJTAS/vB2/hF5g+XT+K6qVdosAD3edg GPAvLmNKfgMqDcKrKc8Y2F5dIY2xOPt7hqeZnzktps1S5r40uCAW2+J/5iBcC54wIFpd 1OZAel78wh5ILwnsbeZzNHXFjyWzTHUdf48WHLGajx26RDA7/HGs2cl2tfqwXNJorOPm umAXwDZ2hFbE6kU1VrmF9tYtNGDicb0xV0PiE2r+GE6ohLhXy33459q/HwHpzi+/8dON 36PDLmxUmKqtoCiJIykT8hmqz4BCyAGBW633VGC6toOUO5Ky8DlOm7aWaOppJU5cciL3 OO9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5U9SqkJeGjJJbD/W4RLcv0iDmA/VUUYhXethC3Y+huI=; b=UOLpHOTjVGM1LK2952+fqTiGVRcQQxBzOw8fw/19vQ2OJuWvO+z8fIeg+IJLiT9fZd EryV6DMv4LJ6twD+5zvmDmixxVFJ3Lvij/KQw7Ea+C8fD7oAHbobY2Olv2J3I+qEYdrB W7gxz0Ip0y0mkYdIPoXh+j/if9AlRgfGTIuIr8uQRO0I2KpJqw2iO2UuvE023dpWBUbX T+zeQ0WzZd/NgJL2BF4KulqnlGgpsoQO4xBECPQQStsyHNcO+XBIb7zI/JUcw+d7VAUt H7EQ3H6lfPV2mqadUzdi58dxMo3YVbv8E+vO4Y6YHBDYxaU9X+2C87EDT77ywVXJDXIw ROUw== X-Gm-Message-State: AOAM532hOirV+9H3ZHlPQorO45AJMjb2BoyXDTCX9v7S4UwkODPrtdOg FrQdDVpMW7/FIXVK5rPXOvlndb5GZPoE+4ks X-Google-Smtp-Source: ABdhPJyojZySpB9MMMo/X/bP1l2dQq6gm+r8zTexSuDeNjtMHoTjhvoplxjpQv1DHxiK/qbYLq+6Bg== X-Received: by 2002:a17:902:dac5:: with SMTP id q5mr1305750plx.8.1644966063794; Tue, 15 Feb 2022 15:01:03 -0800 (PST) Received: from hermes.local (204-195-112-199.wavecable.com. [204.195.112.199]) by smtp.gmail.com with ESMTPSA id h25sm38204574pfn.208.2022.02.15.15.01.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Feb 2022 15:01:03 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Cristian Dumitrescu , Hemant Agrawal , Sachin Saxena , Nithin Dabilpuram , Kiran Kumar K , Sunil Kumar Kori , Satha Rao , Matan Azrad , Viacheslav Ovsiienko , Gagandeep Singh , Fan Zhang , Pablo de Lara , Jay Zhou , Rahul Lakkireddy , John Daley , Hyong Youb Kim , Ziyang Xuan , Xiaoyun Wang , Guoyang Zhou , Heinrich Kuhn , Maxime Coquelin , Chenbo Xia , Ori Kam , Konstantin Ananyev , Akhil Goyal , Bernard Iremonger , Vladimir Medvedkin Subject: [RFC 2/2] treewide: replace zero-length array with flex array Date: Tue, 15 Feb 2022 15:00:58 -0800 Message-Id: <20220215230058.64760-3-stephen@networkplumber.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220215230058.64760-1-stephen@networkplumber.org> References: <20220215230058.64760-1-stephen@networkplumber.org> MIME-Version: 1.0 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 Apply the coccinelle strip to find/fix use of zero length arrays at end of structures. Signed-off-by: Stephen Hemminger --- app/test/test_table_tables.c | 2 +- drivers/bus/dpaa/include/netcfg.h | 4 ++-- drivers/common/cnxk/roc_se.h | 2 +- drivers/common/dpaax/caamflib/desc/ipsec.h | 2 +- drivers/common/dpaax/dpaax_iova_table.h | 2 +- drivers/common/mlx5/mlx5_prm.h | 8 ++++---- drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h | 2 +- drivers/crypto/ipsec_mb/ipsec_mb_private.h | 4 ++-- drivers/crypto/virtio/virtio_ring.h | 4 ++-- drivers/crypto/virtio/virtqueue.h | 2 +- drivers/net/cxgbe/clip_tbl.h | 2 +- drivers/net/cxgbe/l2t.h | 2 +- drivers/net/cxgbe/mps_tcam.h | 2 +- drivers/net/cxgbe/smt.h | 2 +- drivers/net/enic/base/vnic_devcmd.h | 4 ++-- drivers/net/hinic/hinic_pmd_tx.h | 2 +- drivers/net/nfp/nfpcore/nfp_nsp.h | 2 +- drivers/net/virtio/virtio_ring.h | 4 ++-- drivers/net/virtio/virtio_user/vhost_kernel.c | 2 +- drivers/net/virtio/virtio_user/vhost_vdpa.c | 2 +- drivers/net/virtio/virtqueue.h | 2 +- drivers/regex/mlx5/mlx5_rxp.h | 2 +- examples/ip_reassembly/main.c | 2 +- lib/cryptodev/cryptodev_pmd.h | 2 +- lib/cryptodev/rte_cryptodev.h | 2 +- lib/ip_frag/ip_reassembly.h | 2 +- lib/ipsec/sa.h | 2 +- lib/rib/rte_rib.c | 2 +- lib/rib/rte_rib6.c | 2 +- lib/table/rte_swx_table_learner.c | 2 +- lib/table/rte_table_hash_key16.c | 4 ++-- lib/table/rte_table_hash_key32.c | 4 ++-- lib/table/rte_table_hash_key8.c | 4 ++-- lib/vhost/rte_vhost.h | 4 ++-- 34 files changed, 46 insertions(+), 46 deletions(-) diff --git a/app/test/test_table_tables.c b/app/test/test_table_tables.c index d5c5a426bc7c..e1b80b5aa208 100644 --- a/app/test/test_table_tables.c +++ b/app/test/test_table_tables.c @@ -53,7 +53,7 @@ struct rte_bucket_4_8 { uint64_t next_valid; uint64_t key[4]; /* Cache line 1 */ - uint8_t data[0]; + uint8_t data[]; }; #if RTE_TABLE_HASH_LRU_STRATEGY == 3 diff --git a/drivers/bus/dpaa/include/netcfg.h b/drivers/bus/dpaa/include/netcfg.h index bb18a34e3d71..43c7e1cfe139 100644 --- a/drivers/bus/dpaa/include/netcfg.h +++ b/drivers/bus/dpaa/include/netcfg.h @@ -23,7 +23,7 @@ struct fm_eth_port_cfg { struct netcfg_info { uint8_t num_ethports; /**< Number of ports */ - struct fm_eth_port_cfg port_cfg[0]; + struct fm_eth_port_cfg port_cfg[]; /**< Variable structure array of size num_ethports */ }; @@ -38,7 +38,7 @@ struct interface_info { struct netcfg_interface { uint8_t numof_netcfg_interface; uint8_t numof_fman_enabled_macless; - struct interface_info interface_info[0]; + struct interface_info interface_info[]; }; /* pcd_file: FMC netpcd XML ("policy") file, that contains PCD information. diff --git a/drivers/common/cnxk/roc_se.h b/drivers/common/cnxk/roc_se.h index 145a1825bd60..a1d476a86de7 100644 --- a/drivers/common/cnxk/roc_se.h +++ b/drivers/common/cnxk/roc_se.h @@ -246,7 +246,7 @@ struct roc_se_buf_ptr { /* IOV Pointer */ struct roc_se_iov_ptr { int buf_cnt; - struct roc_se_buf_ptr bufs[0]; + struct roc_se_buf_ptr bufs[]; }; struct roc_se_fc_params { diff --git a/drivers/common/dpaax/caamflib/desc/ipsec.h b/drivers/common/dpaax/caamflib/desc/ipsec.h index 668d21649dc3..a4e511d3c370 100644 --- a/drivers/common/dpaax/caamflib/desc/ipsec.h +++ b/drivers/common/dpaax/caamflib/desc/ipsec.h @@ -350,7 +350,7 @@ struct ipsec_encap_pdb { }; uint32_t spi; uint32_t ip_hdr_len; - uint8_t ip_hdr[0]; + uint8_t ip_hdr[]; }; static inline unsigned int diff --git a/drivers/common/dpaax/dpaax_iova_table.h b/drivers/common/dpaax/dpaax_iova_table.h index b1f2300c52b3..9a18eafca024 100644 --- a/drivers/common/dpaax/dpaax_iova_table.h +++ b/drivers/common/dpaax/dpaax_iova_table.h @@ -32,7 +32,7 @@ struct dpaax_iovat_element { struct dpaax_iova_table { unsigned int count; /**< No. of blocks of contiguous physical pages */ - struct dpaax_iovat_element entries[0]; + struct dpaax_iovat_element entries[]; }; /* Pointer to the table, which is common for DPAA/DPAA2 and only a single diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index 495b63191aba..01a6c50c5245 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -3433,7 +3433,7 @@ struct mlx5_ifc_qpc_pas_list_bits { #endif struct mlx5_ifc_qpc_extension_and_pas_list_bits { struct mlx5_ifc_qpc_extension_bits qpc_data_extension; - u8 pas[0][0x40]; + u8 pas[][0x40]; }; @@ -3657,7 +3657,7 @@ struct mlx5_ifc_query_qp_out_bits { u8 reserved_at_a0[0x20]; struct mlx5_ifc_qpc_bits qpc; u8 reserved_at_800[0x80]; - u8 pas[0][0x40]; + u8 pas[][0x40]; }; #ifdef PEDANTIC #pragma GCC diagnostic error "-Wpedantic" @@ -3697,7 +3697,7 @@ struct mlx5_ifc_access_register_out_bits { u8 reserved_at_8[0x18]; u8 syndrome[0x20]; u8 reserved_at_40[0x40]; - u8 register_data[0][0x20]; + u8 register_data[][0x20]; }; struct mlx5_ifc_access_register_in_bits { @@ -3708,7 +3708,7 @@ struct mlx5_ifc_access_register_in_bits { u8 reserved_at_40[0x10]; u8 register_id[0x10]; u8 argument[0x20]; - u8 register_data[0][0x20]; + u8 register_data[][0x20]; }; #ifdef PEDANTIC #pragma GCC diagnostic error "-Wpedantic" diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h b/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h index 3094778a7ac7..d12482078754 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h @@ -128,7 +128,7 @@ struct sec_flc_desc { struct ctxt_priv { struct rte_mempool *fle_pool; /* per device memory pool for FLE */ - struct sec_flc_desc flc_desc[0]; + struct sec_flc_desc flc_desc[]; }; enum dpaa2_sec_op_type { diff --git a/drivers/crypto/ipsec_mb/ipsec_mb_private.h b/drivers/crypto/ipsec_mb/ipsec_mb_private.h index e53101acf178..e2c240dfc05d 100644 --- a/drivers/crypto/ipsec_mb/ipsec_mb_private.h +++ b/drivers/crypto/ipsec_mb/ipsec_mb_private.h @@ -120,7 +120,7 @@ struct ipsec_mb_dev_private { /**< PMD type */ uint32_t max_nb_queue_pairs; /**< Max number of queue pairs supported by device */ - __extension__ uint8_t priv[0]; + __extension__ uint8_t priv[]; }; /** IPSEC Multi buffer queue pair common queue pair data for all PMDs */ @@ -147,7 +147,7 @@ struct ipsec_mb_qp { /* Multi buffer manager */ const struct rte_memzone *mb_mgr_mz; /* Shared memzone for storing mb_mgr */ - __extension__ uint8_t additional_data[0]; + __extension__ uint8_t additional_data[]; /**< Storing PMD specific additional data */ }; diff --git a/drivers/crypto/virtio/virtio_ring.h b/drivers/crypto/virtio/virtio_ring.h index ee3067456688..55839279fd89 100644 --- a/drivers/crypto/virtio/virtio_ring.h +++ b/drivers/crypto/virtio/virtio_ring.h @@ -40,7 +40,7 @@ struct vring_desc { struct vring_avail { uint16_t flags; uint16_t idx; - uint16_t ring[0]; + uint16_t ring[]; }; /* id is a 16bit index. uint32_t is used here for ids for padding reasons. */ @@ -54,7 +54,7 @@ struct vring_used_elem { struct vring_used { uint16_t flags; volatile uint16_t idx; - struct vring_used_elem ring[0]; + struct vring_used_elem ring[]; }; struct vring { diff --git a/drivers/crypto/virtio/virtqueue.h b/drivers/crypto/virtio/virtqueue.h index c96ca629921b..cb08bea94f1c 100644 --- a/drivers/crypto/virtio/virtqueue.h +++ b/drivers/crypto/virtio/virtqueue.h @@ -88,7 +88,7 @@ struct virtqueue { uint16_t *notify_addr; - struct vq_desc_extra vq_descx[0]; + struct vq_desc_extra vq_descx[]; }; /** diff --git a/drivers/net/cxgbe/clip_tbl.h b/drivers/net/cxgbe/clip_tbl.h index d7689f4b7a3a..3b2be6645f2e 100644 --- a/drivers/net/cxgbe/clip_tbl.h +++ b/drivers/net/cxgbe/clip_tbl.h @@ -20,7 +20,7 @@ struct clip_tbl { unsigned int clipt_start; /* start index of CLIP table */ unsigned int clipt_size; /* size of CLIP table */ rte_rwlock_t lock; /* table rw lock */ - struct clip_entry cl_list[0]; /* MUST BE LAST */ + struct clip_entry cl_list[]; /* MUST BE LAST */ }; struct clip_tbl *t4_init_clip_tbl(unsigned int clipt_start, diff --git a/drivers/net/cxgbe/l2t.h b/drivers/net/cxgbe/l2t.h index 9845c9f98124..e4c0ebedec9e 100644 --- a/drivers/net/cxgbe/l2t.h +++ b/drivers/net/cxgbe/l2t.h @@ -37,7 +37,7 @@ struct l2t_data { unsigned int l2t_start; /* start index of our piece of the L2T */ unsigned int l2t_size; /* number of entries in l2tab */ rte_rwlock_t lock; /* table rw lock */ - struct l2t_entry l2tab[0]; /* MUST BE LAST */ + struct l2t_entry l2tab[]; /* MUST BE LAST */ }; #define L2T_LPBK true diff --git a/drivers/net/cxgbe/mps_tcam.h b/drivers/net/cxgbe/mps_tcam.h index a359f52442fa..363786bd387f 100644 --- a/drivers/net/cxgbe/mps_tcam.h +++ b/drivers/net/cxgbe/mps_tcam.h @@ -41,7 +41,7 @@ struct mpstcam_table { * free_idx cannot alone determine * if the table is full */ - struct mps_tcam_entry entry[0]; + struct mps_tcam_entry entry[]; }; struct mpstcam_table *t4_init_mpstcam(struct adapter *adap); diff --git a/drivers/net/cxgbe/smt.h b/drivers/net/cxgbe/smt.h index e6e8aea964e1..81ee919544eb 100644 --- a/drivers/net/cxgbe/smt.h +++ b/drivers/net/cxgbe/smt.h @@ -31,7 +31,7 @@ struct smt_data { unsigned int smt_size; unsigned int smt_start; rte_rwlock_t lock; - struct smt_entry smtab[0]; + struct smt_entry smtab[]; }; struct smt_data *t4_init_smt(u32 smt_start_idx, u32 smt_size); diff --git a/drivers/net/enic/base/vnic_devcmd.h b/drivers/net/enic/base/vnic_devcmd.h index 3157bc8cb5ee..f91cc3078d63 100644 --- a/drivers/net/enic/base/vnic_devcmd.h +++ b/drivers/net/enic/base/vnic_devcmd.h @@ -765,7 +765,7 @@ struct vnic_devcmd_notify { struct vnic_devcmd_provinfo { uint8_t oui[3]; uint8_t type; - uint8_t data[0]; + uint8_t data[]; }; /* @@ -997,7 +997,7 @@ enum { struct filter_tlv { uint32_t type; uint32_t length; - uint32_t val[0]; + uint32_t val[]; }; /* Data for CMD_ADD_FILTER is 2 TLV and filter + action structs */ diff --git a/drivers/net/hinic/hinic_pmd_tx.h b/drivers/net/hinic/hinic_pmd_tx.h index a3ec6299fbe1..152f7abc53f4 100644 --- a/drivers/net/hinic/hinic_pmd_tx.h +++ b/drivers/net/hinic/hinic_pmd_tx.h @@ -81,7 +81,7 @@ struct hinic_sq_wqe { struct hinic_sq_task task; /* sq sge section start address, 1~127 sges */ - struct hinic_sq_bufdesc buf_descs[0]; + struct hinic_sq_bufdesc buf_descs[]; }; struct hinic_txq_stats { diff --git a/drivers/net/nfp/nfpcore/nfp_nsp.h b/drivers/net/nfp/nfpcore/nfp_nsp.h index e74cdeb19100..2184c15b4c0b 100644 --- a/drivers/net/nfp/nfpcore/nfp_nsp.h +++ b/drivers/net/nfp/nfpcore/nfp_nsp.h @@ -224,7 +224,7 @@ struct nfp_eth_table { int is_split; unsigned int fec_modes_supported; - } ports[0]; + } ports[]; }; struct nfp_eth_table *nfp_eth_read_ports(struct nfp_cpp *cpp); diff --git a/drivers/net/virtio/virtio_ring.h b/drivers/net/virtio/virtio_ring.h index 17a56b0a7341..e848c0b73b3d 100644 --- a/drivers/net/virtio/virtio_ring.h +++ b/drivers/net/virtio/virtio_ring.h @@ -46,7 +46,7 @@ struct vring_desc { struct vring_avail { uint16_t flags; uint16_t idx; - uint16_t ring[0]; + uint16_t ring[]; }; /* id is a 16bit index. uint32_t is used here for ids for padding reasons. */ @@ -60,7 +60,7 @@ struct vring_used_elem { struct vring_used { uint16_t flags; uint16_t idx; - struct vring_used_elem ring[0]; + struct vring_used_elem ring[]; }; /* For support of packed virtqueues in Virtio 1.1 the format of descriptors diff --git a/drivers/net/virtio/virtio_user/vhost_kernel.c b/drivers/net/virtio/virtio_user/vhost_kernel.c index 202a8cdee1ca..d9eeadcbf25c 100644 --- a/drivers/net/virtio/virtio_user/vhost_kernel.c +++ b/drivers/net/virtio/virtio_user/vhost_kernel.c @@ -22,7 +22,7 @@ struct vhost_kernel_data { struct vhost_memory_kernel { uint32_t nregions; uint32_t padding; - struct vhost_memory_region regions[0]; + struct vhost_memory_region regions[]; }; /* vhost kernel ioctls */ diff --git a/drivers/net/virtio/virtio_user/vhost_vdpa.c b/drivers/net/virtio/virtio_user/vhost_vdpa.c index 82f25a8674b0..bd13fe44b4c1 100644 --- a/drivers/net/virtio/virtio_user/vhost_vdpa.c +++ b/drivers/net/virtio/virtio_user/vhost_vdpa.c @@ -70,7 +70,7 @@ struct vhost_iotlb_msg { struct vhost_vdpa_config { uint32_t off; uint32_t len; - uint8_t buf[0]; + uint8_t buf[]; }; struct vhost_msg { diff --git a/drivers/net/virtio/virtqueue.h b/drivers/net/virtio/virtqueue.h index 99c68cf62231..d100ed876209 100644 --- a/drivers/net/virtio/virtqueue.h +++ b/drivers/net/virtio/virtqueue.h @@ -309,7 +309,7 @@ struct virtqueue { uint16_t *notify_addr; struct rte_mbuf **sw_ring; /**< RX software ring. */ - struct vq_desc_extra vq_descx[0]; + struct vq_desc_extra vq_descx[]; }; /* If multiqueue is provided by host, then we support it. */ diff --git a/drivers/regex/mlx5/mlx5_rxp.h b/drivers/regex/mlx5/mlx5_rxp.h index 315e3b4ca3b2..6076904fc3a1 100644 --- a/drivers/regex/mlx5/mlx5_rxp.h +++ b/drivers/regex/mlx5/mlx5_rxp.h @@ -64,7 +64,7 @@ struct mlx5_rxp_match_tuple { struct mlx5_rxp_response { struct mlx5_rxp_response_desc header; - struct mlx5_rxp_match_tuple matches[0]; + struct mlx5_rxp_match_tuple matches[]; }; #define MLX5_RXP_MAX_MATCHES 254 diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c index 6e4c11c3c7e0..3ebf895aa01d 100644 --- a/examples/ip_reassembly/main.c +++ b/examples/ip_reassembly/main.c @@ -126,7 +126,7 @@ struct mbuf_table { uint32_t len; uint32_t head; uint32_t tail; - struct rte_mbuf *m_table[0]; + struct rte_mbuf *m_table[]; }; struct rx_queue { diff --git a/lib/cryptodev/cryptodev_pmd.h b/lib/cryptodev/cryptodev_pmd.h index d91902f6e0fe..09def60d3118 100644 --- a/lib/cryptodev/cryptodev_pmd.h +++ b/lib/cryptodev/cryptodev_pmd.h @@ -637,7 +637,7 @@ RTE_STD_C11 struct rte_cryptodev_asym_session { uint16_t user_data_sz; /**< Session user data will be placed after sess_data */ uint8_t padding[3]; - uint8_t sess_private_data[0]; + uint8_t sess_private_data[]; }; #endif /* _CRYPTODEV_PMD_H_ */ diff --git a/lib/cryptodev/rte_cryptodev.h b/lib/cryptodev/rte_cryptodev.h index 19e2e7028709..6f919ff2c41e 100644 --- a/lib/cryptodev/rte_cryptodev.h +++ b/lib/cryptodev/rte_cryptodev.h @@ -914,7 +914,7 @@ struct rte_cryptodev_sym_session { __extension__ struct { void *data; uint16_t refcnt; - } sess_data[0]; + } sess_data[]; /**< Driver specific session material, variable size */ }; diff --git a/lib/ip_frag/ip_reassembly.h b/lib/ip_frag/ip_reassembly.h index 416fb66dd485..ef9d8c0d75ad 100644 --- a/lib/ip_frag/ip_reassembly.h +++ b/lib/ip_frag/ip_reassembly.h @@ -83,7 +83,7 @@ struct rte_ip_frag_tbl { struct ip_frag_pkt *last; /* last used entry. */ struct ip_pkt_list lru; /* LRU list for table entries. */ struct ip_frag_tbl_stat stat; /* statistics counters. */ - __extension__ struct ip_frag_pkt pkt[0]; /* hash table. */ + __extension__ struct ip_frag_pkt pkt[]; /* hash table. */ }; #endif /* _IP_REASSEMBLY_H_ */ diff --git a/lib/ipsec/sa.h b/lib/ipsec/sa.h index 7503587b5004..15bb7e9323fd 100644 --- a/lib/ipsec/sa.h +++ b/lib/ipsec/sa.h @@ -60,7 +60,7 @@ union sym_op_data { struct replay_sqn { rte_rwlock_t rwl; uint64_t sqn; - __extension__ uint64_t window[0]; + __extension__ uint64_t window[]; }; /*IPSEC SA supported algorithms */ diff --git a/lib/rib/rte_rib.c b/lib/rib/rte_rib.c index 6c29e1c49ab2..e8bd027c20e2 100644 --- a/lib/rib/rte_rib.c +++ b/lib/rib/rte_rib.c @@ -37,7 +37,7 @@ struct rte_rib_node { uint8_t depth; uint8_t flag; uint64_t nh; - __extension__ uint64_t ext[0]; + __extension__ uint64_t ext[]; }; struct rte_rib { diff --git a/lib/rib/rte_rib6.c b/lib/rib/rte_rib6.c index 70405113b419..dc52e0e29cec 100644 --- a/lib/rib/rte_rib6.c +++ b/lib/rib/rte_rib6.c @@ -36,7 +36,7 @@ struct rte_rib6_node { uint8_t ip[RTE_RIB6_IPV6_ADDR_SIZE]; uint8_t depth; uint8_t flag; - __extension__ uint64_t ext[0]; + __extension__ uint64_t ext[]; }; struct rte_rib6 { diff --git a/lib/table/rte_swx_table_learner.c b/lib/table/rte_swx_table_learner.c index c3c840ff0662..3f6acfd45574 100644 --- a/lib/table/rte_swx_table_learner.c +++ b/lib/table/rte_swx_table_learner.c @@ -238,7 +238,7 @@ struct table_bucket { uint32_t time[TABLE_KEYS_PER_BUCKET]; uint32_t sig[TABLE_KEYS_PER_BUCKET]; uint8_t pad[TABLE_BUCKET_PAD_SIZE]; - uint8_t key[0]; + uint8_t key[]; }; struct table_params { diff --git a/lib/table/rte_table_hash_key16.c b/lib/table/rte_table_hash_key16.c index c4384b114dc5..246d23d4d360 100644 --- a/lib/table/rte_table_hash_key16.c +++ b/lib/table/rte_table_hash_key16.c @@ -45,7 +45,7 @@ struct rte_bucket_4_16 { uint64_t key[4][2]; /* Cache line 2 */ - uint8_t data[0]; + uint8_t data[]; }; #else struct rte_bucket_4_16 { @@ -60,7 +60,7 @@ struct rte_bucket_4_16 { uint64_t key[4][2]; /* Cache line 2 */ - uint8_t data[0]; + uint8_t data[]; }; #endif diff --git a/lib/table/rte_table_hash_key32.c b/lib/table/rte_table_hash_key32.c index 3e0031fe1e21..c154444ea63d 100644 --- a/lib/table/rte_table_hash_key32.c +++ b/lib/table/rte_table_hash_key32.c @@ -45,7 +45,7 @@ struct rte_bucket_4_32 { uint64_t key[4][4]; /* Cache line 3 */ - uint8_t data[0]; + uint8_t data[]; }; #else struct rte_bucket_4_32 { @@ -60,7 +60,7 @@ struct rte_bucket_4_32 { uint64_t key[4][4]; /* Cache line 3 */ - uint8_t data[0]; + uint8_t data[]; }; #endif diff --git a/lib/table/rte_table_hash_key8.c b/lib/table/rte_table_hash_key8.c index 34e3ed1af914..4c14dfcbbac7 100644 --- a/lib/table/rte_table_hash_key8.c +++ b/lib/table/rte_table_hash_key8.c @@ -42,7 +42,7 @@ struct rte_bucket_4_8 { uint64_t key[4]; /* Cache line 1 */ - uint8_t data[0]; + uint8_t data[]; }; #else struct rte_bucket_4_8 { @@ -56,7 +56,7 @@ struct rte_bucket_4_8 { uint64_t key[4]; /* Cache line 1 */ - uint8_t data[0]; + uint8_t data[]; }; #endif diff --git a/lib/vhost/rte_vhost.h b/lib/vhost/rte_vhost.h index c733f857c62b..99be18ceef49 100644 --- a/lib/vhost/rte_vhost.h +++ b/lib/vhost/rte_vhost.h @@ -154,7 +154,7 @@ struct rte_vhost_inflight_info_split { uint16_t desc_num; uint16_t last_inflight_io; uint16_t used_idx; - struct rte_vhost_inflight_desc_split desc[0]; + struct rte_vhost_inflight_desc_split desc[]; }; struct rte_vhost_inflight_desc_packed { @@ -181,7 +181,7 @@ struct rte_vhost_inflight_info_packed { uint8_t used_wrap_counter; uint8_t old_used_wrap_counter; uint8_t padding[7]; - struct rte_vhost_inflight_desc_packed desc[0]; + struct rte_vhost_inflight_desc_packed desc[]; }; struct rte_vhost_resubmit_desc {