On 7/8/2016 2:23 PM, Bruce Richardson wrote: > On Tue, Jul 05, 2016 at 09:52:09AM +0100, Ferruh Yigit wrote: >> On 6/30/2016 4:04 PM, Jan Medala wrote: >>> Signed-off-by: Alexander Matushevsky <matua at amazon.com> >>> Signed-off-by: Jakub Palider <jpa at semihalf.com> >>> Signed-off-by: Jan Medala <jan at semihalf.com> >> >> The compilation error to fix is [1], it may be good to add what to fix >> into commit log. >> >> [1] >> == Build drivers/net/ena >> CC ena_ethdev.o >> /tmp/dpdk_maintain/ena_v3/dpdk/drivers/net/ena/ena_ethdev.c(943): error >> #188: enumerated type mixed with another type >> struct ena_com_create_io_ctx ctx = { 0 }; >> ^ >> >> /tmp/dpdk_maintain/ena_v3/dpdk/drivers/net/ena/ena_ethdev.c(1036): error >> #188: enumerated type mixed with another type >> struct ena_com_create_io_ctx ctx = { 0 }; >> ^ >> ... >> >>> --- a/drivers/net/ena/ena_ethdev.c >>> +++ b/drivers/net/ena/ena_ethdev.c >>> @@ -940,7 +940,10 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev, >>> __rte_unused unsigned int socket_id, >>> __rte_unused const struct rte_eth_txconf *tx_conf) >>> { >>> - struct ena_com_create_io_ctx ctx = { 0 }; >>> + struct ena_com_create_io_ctx ctx = >>> + /* policy set to _HOST just to satisfy icc compiler */ >>> + { ENA_ADMIN_PLACEMENT_POLICY_HOST, >>> + ENA_COM_IO_QUEUE_DIRECTION_TX, 0, 0, 0, 0 }; >> >> Trailing "0" are not required, compiler will take care of them. >> > Actually, given that this is a structure init and not an array, the trailing > zeros are actually required, since we are not using C99 designated > initializers. As far as I know same thing is valid for both array and struct. uninitialized values set to default values.
c.c: ---- struct mys { int a; int b; int c; }; int main(int argc, char *argv[]) { struct mys s = {99}; return 0; } gcc -S -std=c90 c.c c.s: ---- ... movl %edi, -20(%rbp) movq %rsi, -32(%rbp) movq $0, -16(%rbp) <---- movl $0, -8(%rbp) <---- movl $99, -16(%rbp) movl $0, %eax popq %rbp ret ... > Therefore, I'll leave the zeros in - if anyone wants to convert the format of > the initializers to c99 style later, and remove the trailing zeros then, it > can > go as a separate patch. I'll just merge this fix in with patch 1 that > introduces > the issue. > > /Bruce >