session: use vpp to switch io events for ct sessions
[vpp.git] / src / vnet / session / segment_manager.c
index 0ec14f7..25b641d 100644 (file)
@@ -408,12 +408,10 @@ segment_manager_del_sessions (segment_manager_t * sm)
      */
     while (fifo)
       {
-       if (fifo->ct_session_index != SVM_FIFO_INVALID_SESSION_INDEX)
-         session = session_get (fifo->ct_session_index, 0);
-       else
-         session = session_get (fifo->master_session_index,
-                                fifo->master_thread_index);
-       vec_add1 (handles, session_handle (session));
+       session = session_get_if_valid (fifo->master_session_index,
+                                       fifo->master_thread_index);
+       if (session)
+         vec_add1 (handles, session_handle (session));
        fifo = fifo->next;
       }
 
@@ -604,11 +602,11 @@ alloc_check:
 }
 
 void
-segment_manager_dealloc_fifos (u32 segment_index, svm_fifo_t * rx_fifo,
-                              svm_fifo_t * tx_fifo)
+segment_manager_dealloc_fifos (svm_fifo_t * rx_fifo, svm_fifo_t * tx_fifo)
 {
   svm_fifo_segment_private_t *fifo_segment;
   segment_manager_t *sm;
+  u32 segment_index;
 
   if (!rx_fifo || !tx_fifo)
     return;
@@ -618,6 +616,7 @@ segment_manager_dealloc_fifos (u32 segment_index, svm_fifo_t * rx_fifo,
   if (!(sm = segment_manager_get_if_valid (rx_fifo->segment_manager)))
     return;
 
+  segment_index = rx_fifo->segment_index;
   fifo_segment = segment_manager_get_segment_w_lock (sm, segment_index);
   svm_fifo_segment_free_fifo (fifo_segment, rx_fifo,
                              FIFO_SEGMENT_RX_FREELIST);