All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vlad Zolotarov <vladz-RmZWMc9puTNJc61us3aD9laTQe2KTcn/@public.gmane.org>
To: Thomas Monjalon
	<thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>,
	dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [PATCH v3 2/2] use simple zero initializers
Date: Sun, 19 Apr 2015 11:22:37 +0300	[thread overview]
Message-ID: <553365CD.5070407@cloudius-systems.com> (raw)
In-Reply-To: <1429222237-8002-2-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>



On 04/17/15 01:10, Thomas Monjalon wrote:
> To initialize a structure with zeros, one field was explicitly set
> to avoid "missing initializer" bug with old GCC (e.g. 4.4).
> This warning is now disabled (commit <insertlater>) for old versions of GCC,
> so the workarounds may be removed.
>
> These initializers should not be needed for static variables but they
> are still used to workaround an ICC bug (see commit b2595c4aa92d).
>
> There is one remaining exception where {0} initializer doesn't work cleanly,
> even with recent GCC:
> lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:735:9:
> error: missing braces around initializer [-Werror=missing-braces]
>    struct rte_mbuf mb_def = {0}; /* zeroed mbuf */
>
> Tested with gcc-4.4.7 (CentOS), gcc-4.7.2 (Debian), gcc-4.9.2 (Arch),
> clang-3.6.0 and icc-13.1.1.
>
> Signed-off-by: Thomas Monjalon <thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
> Tested-by: Thomas Monjalon <thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
> Tested-by: John McNamara <john.mcnamara-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>

Acked-by: Vlad Zolotarov <vladz-RmZWMc9puTNJc61us3aD9laTQe2KTcn/@public.gmane.org>

> ---
> changes in v2:
> - new patch
> changes in v3:
> - tested with clang and icc
>
>   app/test/test_ring_perf.c             | 2 +-
>   lib/librte_pmd_e1000/em_ethdev.c      | 2 +-
>   lib/librte_pmd_e1000/igb_ethdev.c     | 4 ++--
>   lib/librte_pmd_e1000/igb_rxtx.c       | 6 ++----
>   lib/librte_pmd_enic/enic_clsf.c       | 2 +-
>   lib/librte_pmd_i40e/i40e_rxtx.c       | 2 +-
>   lib/librte_pmd_ixgbe/ixgbe_rxtx.c     | 8 +++-----
>   lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c | 3 +--
>   lib/librte_pmd_mlx4/mlx4.c            | 2 +-
>   9 files changed, 13 insertions(+), 18 deletions(-)
>
> diff --git a/app/test/test_ring_perf.c b/app/test/test_ring_perf.c
> index 44dda4d..8c47ccb 100644
> --- a/app/test/test_ring_perf.c
> +++ b/app/test/test_ring_perf.c
> @@ -253,7 +253,7 @@ static void
>   run_on_core_pair(struct lcore_pair *cores,
>   		lcore_function_t f1, lcore_function_t f2)
>   {
> -	struct thread_params param1 = {.size = 0}, param2 = {.size = 0};
> +	struct thread_params param1 = {0}, param2 = {0};
>   	unsigned i;
>   	for (i = 0; i < sizeof(bulk_sizes)/sizeof(bulk_sizes[0]); i++) {
>   		lcore_count = 0;
> diff --git a/lib/librte_pmd_e1000/em_ethdev.c b/lib/librte_pmd_e1000/em_ethdev.c
> index 12ecf5f..82e0b7a 100644
> --- a/lib/librte_pmd_e1000/em_ethdev.c
> +++ b/lib/librte_pmd_e1000/em_ethdev.c
> @@ -130,7 +130,7 @@ static struct rte_pci_id pci_id_em_map[] = {
>   #define RTE_PCI_DEV_ID_DECL_EM(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
>   #include "rte_pci_dev_ids.h"
>   
> -{.device_id = 0},
> +{0},
>   };
>   
>   static const struct eth_dev_ops eth_em_ops = {
> diff --git a/lib/librte_pmd_e1000/igb_ethdev.c b/lib/librte_pmd_e1000/igb_ethdev.c
> index 1ea2d38..e2b7cf3 100644
> --- a/lib/librte_pmd_e1000/igb_ethdev.c
> +++ b/lib/librte_pmd_e1000/igb_ethdev.c
> @@ -221,7 +221,7 @@ static struct rte_pci_id pci_id_igb_map[] = {
>   #define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
>   #include "rte_pci_dev_ids.h"
>   
> -{.device_id = 0},
> +{0},
>   };
>   
>   /*
> @@ -232,7 +232,7 @@ static struct rte_pci_id pci_id_igbvf_map[] = {
>   #define RTE_PCI_DEV_ID_DECL_IGBVF(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
>   #include "rte_pci_dev_ids.h"
>   
> -{.device_id = 0},
> +{0},
>   };
>   
>   static const struct eth_dev_ops eth_igb_ops = {
> diff --git a/lib/librte_pmd_e1000/igb_rxtx.c b/lib/librte_pmd_e1000/igb_rxtx.c
> index 946b39d..084e45a 100644
> --- a/lib/librte_pmd_e1000/igb_rxtx.c
> +++ b/lib/librte_pmd_e1000/igb_rxtx.c
> @@ -1164,8 +1164,7 @@ igb_reset_tx_queue_stat(struct igb_tx_queue *txq)
>   static void
>   igb_reset_tx_queue(struct igb_tx_queue *txq, struct rte_eth_dev *dev)
>   {
> -	static const union e1000_adv_tx_desc zeroed_desc = { .read = {
> -			.buffer_addr = 0}};
> +	static const union e1000_adv_tx_desc zeroed_desc = {{0}};
>   	struct igb_tx_entry *txe = txq->sw_ring;
>   	uint16_t i, prev;
>   	struct e1000_hw *hw;
> @@ -1330,8 +1329,7 @@ eth_igb_rx_queue_release(void *rxq)
>   static void
>   igb_reset_rx_queue(struct igb_rx_queue *rxq)
>   {
> -	static const union e1000_adv_rx_desc zeroed_desc = { .read = {
> -			.pkt_addr = 0}};
> +	static const union e1000_adv_rx_desc zeroed_desc = {{0}};
>   	unsigned i;
>   
>   	/* Zero out HW ring memory */
> diff --git a/lib/librte_pmd_enic/enic_clsf.c b/lib/librte_pmd_enic/enic_clsf.c
> index b61d625..a069194 100644
> --- a/lib/librte_pmd_enic/enic_clsf.c
> +++ b/lib/librte_pmd_enic/enic_clsf.c
> @@ -96,7 +96,7 @@ int enic_fdir_add_fltr(struct enic *enic, struct rte_fdir_filter *params,
>   	u16 queue, u8 drop)
>   {
>   	struct enic_fdir_node *key;
> -	struct filter fltr = {.type = 0};
> +	struct filter fltr = {0};
>   	int32_t pos;
>   	u8 do_free = 0;
>   	u16 old_fltr_id = 0;
> diff --git a/lib/librte_pmd_i40e/i40e_rxtx.c b/lib/librte_pmd_i40e/i40e_rxtx.c
> index 9c7be6f..abe68f4 100644
> --- a/lib/librte_pmd_i40e/i40e_rxtx.c
> +++ b/lib/librte_pmd_i40e/i40e_rxtx.c
> @@ -1228,7 +1228,7 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
>   	uint16_t tx_last;
>   	uint16_t slen;
>   	uint64_t buf_dma_addr;
> -	union i40e_tx_offload tx_offload = { .data = 0 };
> +	union i40e_tx_offload tx_offload = {0};
>   
>   	txq = tx_queue;
>   	sw_ring = txq->sw_ring;
> diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
> index f1da9ec..3c61d1c 100644
> --- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
> +++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
> @@ -579,7 +579,7 @@ ixgbe_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
>   	uint64_t tx_ol_req;
>   	uint32_t ctx = 0;
>   	uint32_t new_ctx;
> -	union ixgbe_tx_offload tx_offload = { .data = 0 };
> +	union ixgbe_tx_offload tx_offload = {0};
>   
>   	txq = tx_queue;
>   	sw_ring = txq->sw_ring;
> @@ -2052,8 +2052,7 @@ ixgbe_dev_tx_queue_release(void *txq)
>   static void
>   ixgbe_reset_tx_queue(struct ixgbe_tx_queue *txq)
>   {
> -	static const union ixgbe_adv_tx_desc zeroed_desc = { .read = {
> -			.buffer_addr = 0}};
> +	static const union ixgbe_adv_tx_desc zeroed_desc = {{0}};
>   	struct ixgbe_tx_entry *txe = txq->sw_ring;
>   	uint16_t prev, i;
>   
> @@ -2445,8 +2444,7 @@ check_rx_burst_bulk_alloc_preconditions(__rte_unused struct ixgbe_rx_queue *rxq)
>   static void
>   ixgbe_reset_rx_queue(struct ixgbe_hw *hw, struct ixgbe_rx_queue *rxq)
>   {
> -	static const union ixgbe_adv_rx_desc zeroed_desc = { .read = {
> -			.pkt_addr = 0}};
> +	static const union ixgbe_adv_rx_desc zeroed_desc = {{0}};
>   	unsigned i;
>   	uint16_t len = rxq->nb_rx_desc;
>   
> diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
> index 7ac6b61..abd10f6 100644
> --- a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
> +++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
> @@ -691,8 +691,7 @@ ixgbe_tx_free_swring(struct ixgbe_tx_queue *txq)
>   static void
>   ixgbe_reset_tx_queue(struct ixgbe_tx_queue *txq)
>   {
> -	static const union ixgbe_adv_tx_desc zeroed_desc = { .read = {
> -			.buffer_addr = 0} };
> +	static const union ixgbe_adv_tx_desc zeroed_desc = {{0}};
>   	struct ixgbe_tx_entry_v *txe = (struct ixgbe_tx_entry_v *)txq->sw_ring;
>   	uint16_t i;
>   
> diff --git a/lib/librte_pmd_mlx4/mlx4.c b/lib/librte_pmd_mlx4/mlx4.c
> index e096071..024282a 100644
> --- a/lib/librte_pmd_mlx4/mlx4.c
> +++ b/lib/librte_pmd_mlx4/mlx4.c
> @@ -3497,7 +3497,7 @@ static void
>   mlx4_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
>   {
>   	struct priv *priv = dev->data->dev_private;
> -	struct rte_eth_stats tmp = { .ipackets = 0 };
> +	struct rte_eth_stats tmp = {0};
>   	unsigned int i;
>   	unsigned int idx;
>   

  parent reply	other threads:[~2015-04-19  8:22 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-14  9:31 [PATCH] ixgbe: fix build with gcc 4.4 Thomas Monjalon
     [not found] ` <1429003900-20074-1-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-04-14 12:48   ` Vlad Zolotarov
     [not found]     ` <552D0CA2.9080905-RmZWMc9puTNJc61us3aD9laTQe2KTcn/@public.gmane.org>
2015-04-14 13:06       ` Ananyev, Konstantin
     [not found]         ` <2601191342CEEE43887BDE71AB9772582141570C-pww93C2UFcwu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-14 13:38           ` Vlad Zolotarov
     [not found]             ` <552D1869.4060703-RmZWMc9puTNJc61us3aD9laTQe2KTcn/@public.gmane.org>
2015-04-14 14:17               ` Thomas Monjalon
2015-04-14 14:30                 ` Vlad Zolotarov
     [not found]                   ` <552D247D.9040204-RmZWMc9puTNJc61us3aD9laTQe2KTcn/@public.gmane.org>
2015-04-14 14:53                     ` Thomas Monjalon
2015-04-14 15:17                       ` Vlad Zolotarov
2015-04-14 14:59                 ` Vlad Zolotarov
     [not found]                   ` <552D2B59.9000907-RmZWMc9puTNJc61us3aD9laTQe2KTcn/@public.gmane.org>
2015-04-14 15:13                     ` Thomas Monjalon
2015-04-14 15:21                       ` Vlad Zolotarov
     [not found]                         ` <552D308B.3010000-RmZWMc9puTNJc61us3aD9laTQe2KTcn/@public.gmane.org>
2015-04-14 15:28                           ` Thomas Monjalon
2015-04-14 15:32                             ` Vlad Zolotarov
2015-04-15 20:49                             ` [PATCH v2 1/2] " Thomas Monjalon
     [not found]                               ` <1429130956-17828-1-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-04-15 20:49                                 ` [PATCH v2 2/2] use simple zero initializers Thomas Monjalon
     [not found]                                   ` <1429130956-17828-2-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-04-16 10:12                                     ` Olivier MATZ
     [not found]                                       ` <552F8B09.9070000-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-04-16 12:55                                         ` Thomas Monjalon
2015-04-16 16:31                                           ` Mcnamara, John
2015-04-16  7:26                                 ` [PATCH v2 1/2] ixgbe: fix build with gcc 4.4 Zhang, Helin
2015-04-16  9:14                                 ` Vlad Zolotarov
     [not found]                                   ` <552F7D85.2090002-RmZWMc9puTNJc61us3aD9laTQe2KTcn/@public.gmane.org>
2015-04-16  9:18                                     ` Thomas Monjalon
2015-04-16  9:35                                       ` Vlad Zolotarov
2015-04-16 22:10                                 ` [PATCH v3 1/2] mk: fix build with gcc 4.4 and clang Thomas Monjalon
     [not found]                                   ` <1429222237-8002-1-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-04-16 22:10                                     ` [PATCH v3 2/2] use simple zero initializers Thomas Monjalon
     [not found]                                       ` <1429222237-8002-2-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-04-17 11:17                                         ` Mcnamara, John
2015-04-19  8:22                                         ` Vlad Zolotarov [this message]
     [not found]                                           ` <553365CD.5070407-RmZWMc9puTNJc61us3aD9laTQe2KTcn/@public.gmane.org>
2015-04-20 12:45                                             ` Thomas Monjalon
2015-04-17 11:15                                     ` [PATCH v3 1/2] mk: fix build with gcc 4.4 and clang Mcnamara, John
2015-04-19  8:21                                     ` Vlad Zolotarov
     [not found]                                       ` <553365A5.20405-RmZWMc9puTNJc61us3aD9laTQe2KTcn/@public.gmane.org>
2015-04-20 12:44                                         ` Thomas Monjalon
2015-04-14 12:51   ` [PATCH] ixgbe: fix build with gcc 4.4 Vlad Zolotarov
     [not found]     ` <552D0D65.6040500-RmZWMc9puTNJc61us3aD9laTQe2KTcn/@public.gmane.org>
2015-04-14 13:23       ` Ananyev, Konstantin
     [not found]         ` <2601191342CEEE43887BDE71AB97725821415914-pww93C2UFcwu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-14 13:41           ` Vlad Zolotarov

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=553365CD.5070407@cloudius-systems.com \
    --to=vladz-rmzwmc9putnjc61us3ad9latqe2ktcn/@public.gmane.org \
    --cc=dev-VfR2kkLFssw@public.gmane.org \
    --cc=thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.