[dpdk-dev] [PATCH 10/13] eal: replace rte_panic instances in interrupts thread
Arnon Warshavsky
arnon at qwilt.com
Wed Apr 4 13:27:34 CEST 2018
replace panic calls with log and retrun value.
Thread function removes the noretrun attribute.
Signed-off-by: Arnon Warshavsky <arnon at qwilt.com>
---
lib/librte_eal/linuxapp/eal/eal_interrupts.c | 27 ++++++++++++++++++++-------
1 file changed, 20 insertions(+), 7 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
index f86f22f..7b1f530 100644
--- a/lib/librte_eal/linuxapp/eal/eal_interrupts.c
+++ b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
@@ -776,7 +776,7 @@ struct rte_intr_source {
* @return
* never return;
*/
-static __attribute__((noreturn)) void *
+static void *
eal_intr_thread_main(__rte_unused void *arg)
{
struct epoll_event ev;
@@ -794,8 +794,11 @@ static __attribute__((noreturn)) void *
/* create epoll fd */
int pfd = epoll_create(1);
- if (pfd < 0)
- rte_panic("Cannot create epoll instance\n");
+ if (pfd < 0) {
+ RTE_LOG(CRIT, EAL, "%s(): Cannot create epoll instance\n",
+ __func__);
+ return NULL;
+ }
pipe_event.data.fd = intr_pipe.readfd;
/**
@@ -804,8 +807,11 @@ static __attribute__((noreturn)) void *
*/
if (epoll_ctl(pfd, EPOLL_CTL_ADD, intr_pipe.readfd,
&pipe_event) < 0) {
- rte_panic("Error adding fd to %d epoll_ctl, %s\n",
+ RTE_LOG(CRIT, EAL, "%s(): Error adding fd to %d "
+ "epoll_ctl, %s\n",
+ __func__,
intr_pipe.readfd, strerror(errno));
+ return NULL;
}
numfds++;
@@ -822,9 +828,14 @@ static __attribute__((noreturn)) void *
* into wait list.
*/
if (epoll_ctl(pfd, EPOLL_CTL_ADD,
- src->intr_handle.fd, &ev) < 0){
- rte_panic("Error adding fd %d epoll_ctl, %s\n",
- src->intr_handle.fd, strerror(errno));
+ src->intr_handle.fd, &ev) < 0) {
+ RTE_LOG(CRIT, EAL,
+ "%s(): Error adding fd %d "
+ "epoll_ctl, %s\n",
+ __func__,
+ src->intr_handle.fd,
+ strerror(errno));
+ return NULL;
}
else
numfds++;
@@ -839,6 +850,8 @@ static __attribute__((noreturn)) void *
*/
close(pfd);
}
+
+ return NULL;
}
int
--
1.8.3.1
More information about the dev
mailing list