aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/vnet/session/application.c3
-rw-r--r--src/vnet/session/application_local.c1
-rw-r--r--src/vnet/session/application_worker.c3
-rw-r--r--src/vnet/session/segment_manager.c5
-rw-r--r--src/vnet/session/segment_manager.h2
-rw-r--r--src/vnet/session/session.c3
6 files changed, 7 insertions, 10 deletions
diff --git a/src/vnet/session/application.c b/src/vnet/session/application.c
index e575a3df584..37eb1cb2d18 100644
--- a/src/vnet/session/application.c
+++ b/src/vnet/session/application.c
@@ -1122,8 +1122,7 @@ application_change_listener_owner (session_t * s, app_worker_t * app_wrk)
hash_unset (old_wrk->listeners_table, listen_session_get_handle (s));
if (session_transport_service_type (s) == TRANSPORT_SERVICE_CL
&& s->rx_fifo)
- segment_manager_dealloc_fifos (s->rx_fifo->segment_index, s->rx_fifo,
- s->tx_fifo);
+ segment_manager_dealloc_fifos (s->rx_fifo, s->tx_fifo);
app = application_get (old_wrk->app_index);
if (!app)
diff --git a/src/vnet/session/application_local.c b/src/vnet/session/application_local.c
index b5cac56130c..9378e5e6380 100644
--- a/src/vnet/session/application_local.c
+++ b/src/vnet/session/application_local.c
@@ -210,7 +210,6 @@ ct_init_local_session (app_worker_t * client_wrk, app_worker_t * server_wrk,
ls->tx_fifo->segment_manager = sm_index;
ls->rx_fifo->segment_index = seg_index;
ls->tx_fifo->segment_index = seg_index;
- ls->svm_segment_index = seg_index;
segment_handle = segment_manager_segment_handle (sm, seg);
if ((rv = app_worker_add_segment_notify (server_wrk, segment_handle)))
diff --git a/src/vnet/session/application_worker.c b/src/vnet/session/application_worker.c
index 662c65ba05b..9dfa3aa0243 100644
--- a/src/vnet/session/application_worker.c
+++ b/src/vnet/session/application_worker.c
@@ -165,7 +165,6 @@ app_worker_alloc_session_fifos (segment_manager_t * sm, session_t * s)
s->rx_fifo = rx_fifo;
s->tx_fifo = tx_fifo;
- s->svm_segment_index = fifo_segment_index;
return 0;
}
@@ -362,7 +361,7 @@ app_worker_own_session (app_worker_t * app_wrk, session_t * s)
s->tx_fifo->cursize = txf->cursize;
}
- segment_manager_dealloc_fifos (rxf->segment_index, rxf, txf);
+ segment_manager_dealloc_fifos (rxf, txf);
return 0;
}
diff --git a/src/vnet/session/segment_manager.c b/src/vnet/session/segment_manager.c
index 0ec14f791ff..b7467bbbd43 100644
--- a/src/vnet/session/segment_manager.c
+++ b/src/vnet/session/segment_manager.c
@@ -604,11 +604,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 +618,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);
diff --git a/src/vnet/session/segment_manager.h b/src/vnet/session/segment_manager.h
index 15fd067053f..dadbd571a58 100644
--- a/src/vnet/session/segment_manager.h
+++ b/src/vnet/session/segment_manager.h
@@ -157,7 +157,7 @@ int segment_manager_try_alloc_fifos (svm_fifo_segment_private_t * fs,
u32 rx_fifo_size, u32 tx_fifo_size,
svm_fifo_t ** rx_fifo,
svm_fifo_t ** tx_fifo);
-void segment_manager_dealloc_fifos (u32 segment_index, svm_fifo_t * rx_fifo,
+void segment_manager_dealloc_fifos (svm_fifo_t * rx_fifo,
svm_fifo_t * tx_fifo);
u32 segment_manager_evt_q_expected_size (u32 q_size);
svm_msg_q_t *segment_manager_alloc_queue (svm_fifo_segment_private_t * fs,
diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c
index fced034df85..57567926a1c 100644
--- a/src/vnet/session/session.c
+++ b/src/vnet/session/session.c
@@ -181,8 +181,7 @@ session_free (session_t * s)
void
session_free_w_fifos (session_t * s)
{
- segment_manager_dealloc_fifos (s->svm_segment_index, s->rx_fifo,
- s->tx_fifo);
+ segment_manager_dealloc_fifos (s->rx_fifo, s->tx_fifo);
session_free (s);
}