ip-neighbor: ARP and ND stats per-interface.
[vpp.git] / src / vnet / session / segment_manager.c
index 3b05cd0..14e4e21 100644 (file)
@@ -856,6 +856,10 @@ segment_manager_dealloc_fifos (svm_fifo_t * rx_fifo, svm_fifo_t * tx_fifo)
   if (!rx_fifo || !tx_fifo)
     return;
 
+  /* Thread that allocated the fifos must be the one to clean them up */
+  ASSERT (rx_fifo->master_thread_index == vlib_get_thread_index () ||
+         rx_fifo->refcnt > 1);
+
   /* It's possible to have no segment manager if the session was removed
    * as result of a detach. */
   if (!(sm = segment_manager_get_if_valid (rx_fifo->segment_manager)))
@@ -1032,9 +1036,9 @@ format_segment_manager (u8 *s, va_list *args)
   s = format (s,
              "[%u] %v app-wrk: %u segs: %u max-fifo-sz: %U "
              "wmarks: %u %u %s flags: 0x%x",
-             segment_manager_index (sm), app->name, sm->app_wrk_index,
-             pool_elts (sm->segments), format_memory_size, max_fifo_size,
-             sm->high_watermark, sm->low_watermark,
+             segment_manager_index (sm), app ? app->name : 0,
+             sm->app_wrk_index, pool_elts (sm->segments), format_memory_size,
+             max_fifo_size, sm->high_watermark, sm->low_watermark,
              custom_logic ? "custom-tuning" : "no-tuning", sm->flags);
 
   if (!verbose || !pool_elts (sm->segments))