All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vlad Zolotarov <vladz-RmZWMc9puTNJc61us3aD9laTQe2KTcn/@public.gmane.org>
To: "Ananyev,
	Konstantin"
	<konstantin.ananyev-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Thomas Monjalon
	<thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>,
	"Zhang,
	Helin" <helin.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: "dev-VfR2kkLFssw@public.gmane.org" <dev-VfR2kkLFssw@public.gmane.org>
Subject: Re: [PATCH] ixgbe: fix build with gcc 4.4
Date: Tue, 14 Apr 2015 16:38:49 +0300	[thread overview]
Message-ID: <552D1869.4060703@cloudius-systems.com> (raw)
In-Reply-To: <2601191342CEEE43887BDE71AB9772582141570C-pww93C2UFcwu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>



On 04/14/15 16:06, Ananyev, Konstantin wrote:
>
>> -----Original Message-----
>> From: Vlad Zolotarov [mailto:vladz-RmZWMc9puTNJc61us3aD9laTQe2KTcn/@public.gmane.org]
>> Sent: Tuesday, April 14, 2015 1:49 PM
>> To: Thomas Monjalon; Ananyev, Konstantin; Zhang, Helin
>> Cc: dev-VfR2kkLFssw@public.gmane.org
>> Subject: Re: [PATCH] ixgbe: fix build with gcc 4.4
>>
>>
>>
>> On 04/14/15 12:31, Thomas Monjalon wrote:
>>> With GCC 4.4.7 from CentOS 6.5, the following errors arise:
>>>
>>> lib/librte_pmd_ixgbe/ixgbe_rxtx.c: In function ‘ixgbe_dev_rx_queue_setup’:
>>> lib/librte_pmd_ixgbe/ixgbe_rxtx.c:2509: error: missing initializer
>>> lib/librte_pmd_ixgbe/ixgbe_rxtx.c:2509: error: (near initialization for ‘dev_info.driver_name’)
>>>
>>> lib/librte_pmd_ixgbe/ixgbe_rxtx.c: In function ‘ixgbe_set_rsc’:
>>> lib/librte_pmd_ixgbe/ixgbe_rxtx.c:4072: error: missing initializer
>>> lib/librte_pmd_ixgbe/ixgbe_rxtx.c:4072: error: (near initialization for ‘dev_info.driver_name’)
>>>
>>> lib/librte_pmd_ixgbe/ixgbe_rxtx.c: In function ‘ixgbe_recv_pkts_lro_single_alloc’:
>>> lib/librte_pmd_ixgbe/ixgbe_rxtx.c:1479: error: ‘next_rsc_entry’ may be used uninitialized in this function
>>> lib/librte_pmd_ixgbe/ixgbe_rxtx.c:1480: error: ‘next_rxe’ may be used uninitialized in this function
>>>
>>> Fixes: 8eecb3295aed ("ixgbe: add LRO support")
>>>
>>> Signed-off-by: Thomas Monjalon <thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
>>> ---
>>>    lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 8 ++++----
>>>    1 file changed, 4 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
>>> index f1da9ec..a2b8631 100644
>>> --- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
>>> +++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
>>> @@ -1476,8 +1476,8 @@ ixgbe_recv_pkts_lro(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts,
>>>    		bool eop;
>>>    		struct ixgbe_rx_entry *rxe;
>>>    		struct ixgbe_rsc_entry *rsc_entry;
>>> -		struct ixgbe_rsc_entry *next_rsc_entry;
>>> -		struct ixgbe_rx_entry *next_rxe;
>>> +		struct ixgbe_rsc_entry *next_rsc_entry = NULL;
>>> +		struct ixgbe_rx_entry *next_rxe = NULL;
>>>    		struct rte_mbuf *first_seg;
>>>    		struct rte_mbuf *rxm;
>>>    		struct rte_mbuf *nmb;
>>> @@ -2506,7 +2506,7 @@ ixgbe_dev_rx_queue_setup(struct rte_eth_dev *dev,
>>>    	struct ixgbe_rx_queue *rxq;
>>>    	struct ixgbe_hw     *hw;
>>>    	uint16_t len;
>>> -	struct rte_eth_dev_info dev_info = { 0 };
>>> +	struct rte_eth_dev_info dev_info = { .max_rx_queues = 0 };
>>>    	struct rte_eth_rxmode *dev_rx_mode = &dev->data->dev_conf.rxmode;
>>>    	bool rsc_requested = false;
>>>
>>> @@ -4069,7 +4069,7 @@ ixgbe_set_rsc(struct rte_eth_dev *dev)
>>>    {
>>>    	struct rte_eth_rxmode *rx_conf = &dev->data->dev_conf.rxmode;
>>>    	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>>> -	struct rte_eth_dev_info dev_info = { 0 };
>>> +	struct rte_eth_dev_info dev_info = { .max_rx_queues = 0 };
>> Hmmm... Unless I miss something this and one above would zero only a
>> single field - "max_rx_queues"; and would leave the rest uninitialized.
>> The original code intend to zero the whole struct. The alternative to
>> the original lines could be usage of memset().
> As I understand, in that case compiler had to set all non-explicitly initialised members to 0.
> So I think we are ok here.

Yeah, I guess it does zero-initializes the rest 
(https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html) however I 
don't understand how the above change fixes the error if it complains 
about the dev_info.driver_name?

What I'm trying to say - the proposed fix is completely unclear and 
confusing. Think of somebody reading this line in a month from today - 
he wouldn't get a clue why is it there, why to explicitly set 
max_rx_queues to zero and leave the rest be zeroed automatically... Why 
to add such artifacts to the code instead of just zeroing the struct 
with a memset() and putting a good clear comment above it explaining why 
we use a memset() and not and initializer?

>   
>>>    	bool rsc_capable = false;
>>>    	uint16_t i;
>>>    	uint32_t rdrxctl;

  parent reply	other threads:[~2015-04-14 13:38 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 [this message]
     [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
     [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=552D1869.4060703@cloudius-systems.com \
    --to=vladz-rmzwmc9putnjc61us3ad9latqe2ktcn/@public.gmane.org \
    --cc=dev-VfR2kkLFssw@public.gmane.org \
    --cc=helin.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=konstantin.ananyev-ral2JQCrhuEAvxtiuMwx3w@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.