[dpdk-dev] [PATCH] KNI: fix compilation warning 'missing-field-initializers'

Thomas Monjalon thomas.monjalon at 6wind.com
Wed Oct 22 12:00:46 CEST 2014


2014-10-22 11:49, Marc Sune:
> 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.

No problem for initializing mutex.

> I don't have an ICC license. I am always trying it with GCC and clang.

That's why it's the Intel job to support ICC in DPDK :)

-- 
Thomas


More information about the dev mailing list