Thread (5 messages) 5 messages, 3 authors, 2016-03-17

Re: [PATCH] eal_interrupts.c: properly init struct epoll_event (valgrind)

From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2016-03-17 17:19:31

On Thu, 17 Mar 2016 15:18:15 +0100
Thomas Monjalon [off-list ref] wrote:
Hi Stephen,

Please, could you turn it into a real patch with your sign-off?
Thanks

2016-02-14 12:22, Stephen Hemminger:
quoted
A better patch would be to move the data structure into the
code block used, and get rid of the useless else (rte_panic never returns);
and fix the indentation, and use C99 initialization which should make valgrind
happier.

The moral is don't just slap memsets around
diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
index 06b26a9..d53826e 100644
--- a/lib/librte_eal/linuxapp/eal/eal_interrupts.c
+++ b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
@@ -799,8 +799,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
@@ -834,20 +832,22 @@ eal_intr_thread_main(__rte_unused void *arg)
 		TAILQ_FOREACH(src, &intr_sources, next) {
 			if (src->callbacks.tqh_first == NULL)
 				continue; /* skip those with no callbacks */
-			ev.events = EPOLLIN | EPOLLPRI;
-			ev.data.fd = src->intr_handle.fd;
+
+			struct epoll_event ev = {
+				.events = EPOLLIN | EPOLLPRI,
+				.data.fd = src->intr_handle.fd,
+			};
 
 			/**
 			 * add all the uio device file descriptor
 			 * into wait list.
 			 */
 			if (epoll_ctl(pfd, EPOLL_CTL_ADD,
-					src->intr_handle.fd, &ev) < 0){
+					src->intr_handle.fd, &ev) < 0)
 				rte_panic("Error adding fd %d epoll_ctl, %s\n",
 					src->intr_handle.fd, strerror(errno));
-			}
-			else
-				numfds++;
+
+			numfds++;
 		}
 		rte_spinlock_unlock(&intr_lock);
 		/* serve the interrupt */
Sure I thought Matthew would since he reported the issue and had the ability
to test it.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help