replace panic calls with log and return value.
Thread function removes the noreturn attribute.

Signed-off-by: Arnon Warshavsky <ar...@qwilt.com>
---
 lib/librte_eal/linuxapp/eal/eal_interrupts.c | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c 
b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
index 58e9328..77e6f2a 100644
--- a/lib/librte_eal/linuxapp/eal/eal_interrupts.c
+++ b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
@@ -785,7 +785,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;
@@ -803,8 +803,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;
                /**
@@ -813,8 +816,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++;
 
@@ -831,9 +837,12 @@ 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++;
@@ -848,6 +857,8 @@ static __attribute__((noreturn)) void *
                 */
                close(pfd);
        }
+
+       return NULL;
 }
 
 int
-- 
1.8.3.1

Reply via email to