> -----Original Message----- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Marc Sune > Sent: Wednesday, October 22, 2014 10:50 AM > To: Thomas Monjalon > Cc: dev at dpdk.org > Subject: Re: [dpdk-dev] [PATCH] KNI: fix compilation warning 'missing-field- > initializers' > > On 22/10/14 10:50, Thomas Monjalon wrote: > > 2014-10-22 10:42, Marc Sune: > >> The mutex needs to be initialized to RTE_SPINLOCK_INITIALIZER(0) too, or > >> move the initialization of the mutex to rte_kni_init(). > > RTE_SPINLOCK_INITIALIZER is { 0 } > > By initializing one field, all other fields are set to 0, so spinlock also. > > Just choose one field and it's OK. > > It should be tested with ICC also but I think it's OK. > > Seems that you are right, at least for C99: > > C99 Standard 6.7.8.21 > > If there are fewer initializers in a brace-enclosed list than > there are elements or members of an aggregate, or fewer characters > in a string literal used to initialize an array of known size than > there are elements in the array, the remainder of the aggregate > shall be initialized implicitly the same as objects that have static > storage duration. > > > I am not sure if there can be problems with other C dialects (e.g. C11), > I don't have the std here. So to prevent any problem with them (could > produce a dead-lock during first rte_kni_alloc() that could be difficult > to troubleshoot), I would still explicitly initialize the mutex, in one > or the other way. > > Just tell me if you agree and which one you prefer. > > I don't have an ICC license. I am always trying it with GCC and clang. > > Marc
ICC should be fine with this, it handles just initializing a single member of a structure as described by Thomas above. /Bruce