set_session_private_data (s->session, drv_id, NULL);
}
- ret = rte_cryptodev_sym_session_free (s->session);
- ASSERT (!ret);
+ if (rte_mempool_from_obj(s->session))
+ {
+ ret = rte_cryptodev_sym_session_free (s->session);
+ ASSERT (!ret);
+ }
}
/* *INDENT-ON* */
vec_foreach (data, dcm->data)
{
val = hash_get (data->session_by_sa_index, sa_index);
- s = (struct rte_cryptodev_sym_session *) val;
- if (!s)
+ if (!val)
continue;
+ s = (struct rte_cryptodev_sym_session *) val[0];
+
vec_foreach_index (drv_id, dcm->drv)
{
key.drv_id = drv_id;
val = hash_get (data->session_by_drv_id_and_sa_index, key.val);
- s = (struct rte_cryptodev_sym_session *) val;
- if (!s)
+ if (!val)
continue;
hash_unset (data->session_by_drv_id_and_sa_index, key.val);