replace panic calls with log and retrun value.
Local function to this file,
changing from void to int is non-abi-breaking

Signed-off-by: Arnon Warshavsky <ar...@qwilt.com>
---
 lib/librte_kni/rte_kni.c      | 18 ++++++++++++------
 lib/librte_kni/rte_kni_fifo.h | 11 ++++++++---
 2 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/lib/librte_kni/rte_kni.c b/lib/librte_kni/rte_kni.c
index 2867411..54050c8 100644
--- a/lib/librte_kni/rte_kni.c
+++ b/lib/librte_kni/rte_kni.c
@@ -353,37 +353,43 @@ struct rte_kni *
        /* TX RING */
        mz = slot->m_tx_q;
        ctx->tx_q = mz->addr;
-       kni_fifo_init(ctx->tx_q, KNI_FIFO_COUNT_MAX);
+       if (kni_fifo_init(ctx->tx_q, KNI_FIFO_COUNT_MAX))
+               return NULL;
        dev_info.tx_phys = mz->phys_addr;
 
        /* RX RING */
        mz = slot->m_rx_q;
        ctx->rx_q = mz->addr;
-       kni_fifo_init(ctx->rx_q, KNI_FIFO_COUNT_MAX);
+       if (kni_fifo_init(ctx->rx_q, KNI_FIFO_COUNT_MAX))
+               return NULL;
        dev_info.rx_phys = mz->phys_addr;
 
        /* ALLOC RING */
        mz = slot->m_alloc_q;
        ctx->alloc_q = mz->addr;
-       kni_fifo_init(ctx->alloc_q, KNI_FIFO_COUNT_MAX);
+       if (kni_fifo_init(ctx->alloc_q, KNI_FIFO_COUNT_MAX))
+               return NULL;
        dev_info.alloc_phys = mz->phys_addr;
 
        /* FREE RING */
        mz = slot->m_free_q;
        ctx->free_q = mz->addr;
-       kni_fifo_init(ctx->free_q, KNI_FIFO_COUNT_MAX);
+       if (kni_fifo_init(ctx->free_q, KNI_FIFO_COUNT_MAX))
+               return NULL;
        dev_info.free_phys = mz->phys_addr;
 
        /* Request RING */
        mz = slot->m_req_q;
        ctx->req_q = mz->addr;
-       kni_fifo_init(ctx->req_q, KNI_FIFO_COUNT_MAX);
+       if (kni_fifo_init(ctx->req_q, KNI_FIFO_COUNT_MAX))
+               return NULL;
        dev_info.req_phys = mz->phys_addr;
 
        /* Response RING */
        mz = slot->m_resp_q;
        ctx->resp_q = mz->addr;
-       kni_fifo_init(ctx->resp_q, KNI_FIFO_COUNT_MAX);
+       if (kni_fifo_init(ctx->resp_q, KNI_FIFO_COUNT_MAX))
+               return NULL;
        dev_info.resp_phys = mz->phys_addr;
 
        /* Req/Resp sync mem area */
diff --git a/lib/librte_kni/rte_kni_fifo.h b/lib/librte_kni/rte_kni_fifo.h
index ac26a8c..5052015 100644
--- a/lib/librte_kni/rte_kni_fifo.h
+++ b/lib/librte_kni/rte_kni_fifo.h
@@ -7,17 +7,22 @@
 /**
  * Initializes the kni fifo structure
  */
-static void
+static int
 kni_fifo_init(struct rte_kni_fifo *fifo, unsigned size)
 {
        /* Ensure size is power of 2 */
-       if (size & (size - 1))
-               rte_panic("KNI fifo size must be power of 2\n");
+       if (size & (size - 1)) {
+               RTE_LOG(CRIT, EAL, "%s(): KNI fifo size must be power of 2\n",
+                               __func__);
+               return -1;
+       }
 
        fifo->write = 0;
        fifo->read = 0;
        fifo->len = size;
        fifo->elem_size = sizeof(void *);
+
+       return 0;
 }
 
 /**
-- 
1.8.3.1

Reply via email to