DPDK patches and discussions
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: dev@dpdk.org
Cc: david.marchand@redhat.com,
	"Bruce Richardson" <bruce.richardson@intel.com>,
	"Morten Brørup" <mb@smartsharesystems.com>,
	"Stephen Hemminger" <stephen@networkplumber.org>,
	"Hemant Agrawal" <hemant.agrawal@nxp.com>
Subject: [PATCH v3 2/4] drivers: replace zero-length arrays with undimensioned ones
Date: Fri,  3 Jun 2022 11:13:29 +0100	[thread overview]
Message-ID: <20220603101331.1030993-3-bruce.richardson@intel.com> (raw)
In-Reply-To: <20220603101331.1030993-1-bruce.richardson@intel.com>

This patch replaces instances of zero-sized arrays i.e. those at the end
of structures with "[0]" with the more standard syntax of "[]".
Replacement was done using coccinelle script, with some cleanup of
whitespace afterwards.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
V3: Fixed issues in mlx5 drivers:
  * fixed incorrect coccinelle replacement of 2-D zero-length arrays
  * undid removal of "0" in tx elts[] which caused issues with Werror-pedantic

 drivers/bus/dpaa/include/netcfg.h             |  4 ++--
 drivers/bus/vmbus/rte_vmbus_reg.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                | 10 +++++-----
 drivers/crypto/ipsec_mb/ipsec_mb_private.h    |  4 ++--
 drivers/crypto/virtio/virtio_ring.h           |  4 ++--
 drivers/crypto/virtio/virtqueue.h             |  2 +-
 drivers/net/atlantic/hw_atl/hw_atl_utils.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           |  2 +-
 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                 |  4 ++--
 22 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/drivers/bus/dpaa/include/netcfg.h b/drivers/bus/dpaa/include/netcfg.h
index bb18a34e3d..43c7e1cfe1 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/bus/vmbus/rte_vmbus_reg.h b/drivers/bus/vmbus/rte_vmbus_reg.h
index 8562672979..a17ce40763 100644
--- a/drivers/bus/vmbus/rte_vmbus_reg.h
+++ b/drivers/bus/vmbus/rte_vmbus_reg.h
@@ -107,7 +107,7 @@ struct vmbus_bufring {
 	 * Ring data starts here + RingDataStartOffset
 	 * !!! DO NOT place any fields below this !!!
 	 */
-	uint8_t data[0];
+	uint8_t data[];
 } __rte_packed;

 /*
@@ -140,7 +140,7 @@ vmbus_chanpkt_getlen(uint16_t pktlen)
 struct vmbus_gpa_range {
 	uint32_t       len;
 	uint32_t       ofs;
-	uint64_t       page[0];
+	uint64_t       page[];
 } __rte_packed;

 /* This is actually vmbus_gpa_range.gpa_page[1] */
diff --git a/drivers/common/cnxk/roc_se.h b/drivers/common/cnxk/roc_se.h
index 145a1825bd..a1d476a86d 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 8ec6aac915..2c9080a1b5 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 b1f2300c52..9a18eafca0 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 bc3e70a1d1..654e5f44ee 100644
--- a/drivers/common/mlx5/mlx5_prm.h
+++ b/drivers/common/mlx5/mlx5_prm.h
@@ -560,7 +560,7 @@ struct mlx5_umr_wqe {
 struct mlx5_rdma_write_wqe {
 	struct mlx5_wqe_cseg ctr;
 	struct mlx5_wqe_rseg rseg;
-	struct mlx5_wqe_dseg dseg[0];
+	struct mlx5_wqe_dseg dseg[];
 } __rte_packed;

 #ifdef PEDANTIC
@@ -3479,7 +3479,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];
 };


@@ -3703,7 +3703,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"
@@ -3743,7 +3743,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 {
@@ -3754,7 +3754,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/ipsec_mb/ipsec_mb_private.h b/drivers/crypto/ipsec_mb/ipsec_mb_private.h
index e53101acf1..e2c240dfc0 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 ee30674566..55839279fd 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 c96ca62992..cb08bea94f 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/atlantic/hw_atl/hw_atl_utils.h b/drivers/net/atlantic/hw_atl/hw_atl_utils.h
index d8fab010cf..12ac9b041e 100644
--- a/drivers/net/atlantic/hw_atl/hw_atl_utils.h
+++ b/drivers/net/atlantic/hw_atl/hw_atl_utils.h
@@ -334,7 +334,7 @@ struct offload_info {
 	struct offload_port_info ports;
 	struct offload_ka_info kas;
 	struct offload_rr_info rrs;
-	u8 buf[0];
+	u8 buf[];
 } __rte_packed;

 struct smbus_request {
diff --git a/drivers/net/cxgbe/clip_tbl.h b/drivers/net/cxgbe/clip_tbl.h
index d7689f4b7a..3b2be6645f 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 9845c9f981..e4c0ebedec 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 a359f52442..363786bd38 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 a70e3a2085..531810e695 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 3157bc8cb5..253a791c3f 100644
--- a/drivers/net/enic/base/vnic_devcmd.h
+++ b/drivers/net/enic/base/vnic_devcmd.h
@@ -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 a3ec6299fb..152f7abc53 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 e74cdeb191..2184c15b4c 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 17a56b0a73..e848c0b73b 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 986b56a7ca..1aed08b2bd 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 82f25a8674..bd13fe44b4 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 99c68cf622..d100ed8762 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 315e3b4ca3..eddc577d79 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
@@ -114,7 +114,7 @@ struct mlx5_rxp_rof {
 struct mlx5_rxp_ctl_rules_pgm {
 	struct mlx5_rxp_ctl_hdr hdr;
 	uint32_t count;
-	struct mlx5_rxp_rof_entry rules[0];
+	struct mlx5_rxp_rof_entry rules[];
 } __rte_packed;

 /* RXP programming mode setting. */
--
2.34.1


  parent reply	other threads:[~2022-06-03 10:13 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-02 15:08 [PATCH 0/4] clean up zero-length arrays Bruce Richardson
2022-06-02 15:08 ` [PATCH 1/4] cocci: add script for zero-length arrays in structs Bruce Richardson
2022-06-02 15:08 ` [PATCH 2/4] drivers: replace zero-length arrays with undimensioned ones Bruce Richardson
2022-06-02 15:08 ` [PATCH 3/4] lib: " Bruce Richardson
2022-06-02 15:08 ` [PATCH 4/4] app: examples: " Bruce Richardson
2022-06-02 15:20 ` [PATCH 0/4] clean up zero-length arrays Morten Brørup
2022-06-02 15:35 ` Stephen Hemminger
2022-06-02 16:13 ` [PATCH v2 " Bruce Richardson
2022-06-02 16:13   ` [PATCH v2 1/4] cocci: add script for zero-length arrays in structs Bruce Richardson
2022-06-02 16:13   ` [PATCH v2 2/4] drivers: replace zero-length arrays with undimensioned ones Bruce Richardson
2022-06-03  7:19     ` David Marchand
2022-06-03  7:36       ` Bruce Richardson
2022-06-03  9:18       ` Bruce Richardson
2022-06-02 16:13   ` [PATCH v2 3/4] lib: " Bruce Richardson
2022-06-02 16:13   ` [PATCH v2 4/4] app: examples: " Bruce Richardson
2022-06-03  6:56   ` [PATCH v2 0/4] clean up zero-length arrays Hemant Agrawal
2022-06-03 10:13 ` [PATCH v3 " Bruce Richardson
2022-06-03 10:13   ` [PATCH v3 1/4] cocci: add script for zero-length arrays in structs Bruce Richardson
2022-06-03 10:30     ` Morten Brørup
2022-06-03 10:38       ` Bruce Richardson
2022-06-03 10:13   ` Bruce Richardson [this message]
2022-06-03 10:13   ` [PATCH v3 3/4] lib: replace zero-length arrays with undimensioned ones Bruce Richardson
2022-06-03 10:13   ` [PATCH v3 4/4] app: examples: " Bruce Richardson
2022-06-03 11:13   ` [PATCH v3 0/4] clean up zero-length arrays Bruce Richardson
2022-06-03 11:16 ` [PATCH v4 " Bruce Richardson
2022-06-03 11:16   ` [PATCH v4 1/4] cocci: add script for zero-length arrays in structs Bruce Richardson
2022-06-03 11:16   ` [PATCH v4 2/4] drivers: replace zero-length arrays with undimensioned ones Bruce Richardson
2022-06-03 11:16   ` [PATCH v4 3/4] lib: " Bruce Richardson
2022-06-03 11:16   ` [PATCH v4 4/4] app: examples: " Bruce Richardson
2022-06-07 14:16   ` [PATCH v4 0/4] clean up zero-length arrays David Marchand
2022-06-09 15:19   ` Tyler Retzlaff
2022-06-08 15:23 ` [PATCH " Stephen Hemminger
2022-06-14  9:40   ` Bruce Richardson
2022-06-14  9:45     ` Bruce Richardson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220603101331.1030993-3-bruce.richardson@intel.com \
    --to=bruce.richardson@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=hemant.agrawal@nxp.com \
    --cc=mb@smartsharesystems.com \
    --cc=stephen@networkplumber.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).