On Wed, 4 Dec 2019 16:00:02 +0100 David Marchand <david.march...@redhat.com> wrote:
> Previous fix gives hiccups to gcc on RHEL 7.6: > > == Build lib/librte_eal/linux/eal > CC eal_interrupts.o > ...lib/librte_eal/linux/eal/eal_interrupts.c: In function > ‘eal_intr_thread_main’: > ...lib/librte_eal/linux/eal/eal_interrupts.c:1048:9: error: missing > initializer for field ‘events’ of ‘struct epoll_event’ > [-Werror=missing-field-initializers] > struct epoll_event ev = { }; > ^ > In file included from ...lib/librte_eal/linux/eal/eal_interrupts.c:15:0: > /usr/include/sys/epoll.h:89:12: note: ‘events’ declared here > uint32_t events; /* Epoll events */ > ^ > ...lib/librte_eal/linux/eal/eal_interrupts.c: At top level: > cc1: error: unrecognized command line option > "-Wno-address-of-packed-member" [-Werror] > cc1: all warnings being treated as errors > > Fixes: e0ab8020ac2a ("eal/linux: fix uninitialized data valgrind warning") > Cc: sta...@dpdk.org > > Reported-by: Andrew Rybchenko <arybche...@solarflare.com> > Signed-off-by: David Marchand <david.march...@redhat.com> > --- > lib/librte_eal/linux/eal/eal_interrupts.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/lib/librte_eal/linux/eal/eal_interrupts.c > b/lib/librte_eal/linux/eal/eal_interrupts.c > index 2cd537ba4..14ebb108c 100644 > --- a/lib/librte_eal/linux/eal/eal_interrupts.c > +++ b/lib/librte_eal/linux/eal/eal_interrupts.c > @@ -1045,8 +1045,6 @@ eal_intr_handle_interrupts(int pfd, unsigned totalfds) > static __attribute__((noreturn)) void * > eal_intr_thread_main(__rte_unused void *arg) > { > - struct epoll_event ev = { }; > - > /* host thread, never break out */ > for (;;) { > /* build up the epoll fd with all descriptors we are to > @@ -1078,8 +1076,11 @@ eal_intr_thread_main(__rte_unused void *arg) > rte_spinlock_lock(&intr_lock); > > TAILQ_FOREACH(src, &intr_sources, next) { > + struct epoll_event ev; > + > if (src->callbacks.tqh_first == NULL) > continue; /* skip those with no callbacks */ > + memset(&ev, 0, sizeof(ev)); > ev.events = EPOLLIN | EPOLLPRI | EPOLLRDHUP | EPOLLHUP; > ev.data.fd = src->intr_handle.fd; > Never mind, memset does the same thing. Not a fan of missing field initializer warnings.