Skip to content

Commit 7327a65

Browse files
vvelumuri-mrvlAkhil Goyal
authored andcommitted
examples/ipsec-secgw: free the actual mbuf pointer
In case of crypto event vector, the vector points to crypto op structure in priv area and not actual mbuf. Extract the mbuf pointer and pass these to rte_mbuf_free to free the mbufs. Signed-off-by: Vidya Sagar Velumuri <[email protected]> Acked-by: Anoob Joseph <[email protected]>
1 parent bd77fc2 commit 7327a65

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

examples/ipsec-secgw/ipsec_worker.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -960,7 +960,18 @@ static void
960960
ipsec_event_vector_free(struct rte_event *ev)
961961
{
962962
struct rte_event_vector *vec = ev->vec;
963-
rte_pktmbuf_free_bulk(vec->mbufs + vec->elem_offset, vec->nb_elem);
963+
964+
if (ev->event_type == RTE_EVENT_TYPE_CRYPTODEV_VECTOR) {
965+
struct rte_crypto_op *cop;
966+
int i;
967+
968+
for (i = 0; i < vec->nb_elem; i++) {
969+
cop = vec->ptrs[i];
970+
rte_pktmbuf_free(cop->sym->m_src);
971+
}
972+
} else {
973+
rte_pktmbuf_free_bulk(vec->mbufs + vec->elem_offset, vec->nb_elem);
974+
}
964975
rte_mempool_put(rte_mempool_from_obj(vec), vec);
965976
}
966977

0 commit comments

Comments
 (0)