-
- 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);
-
- if (!val)
- continue;
-
- hash_unset (data->session_by_drv_id_and_sa_index, key.val);
- }
-
- hash_unset (data->session_by_sa_index, sa_index);
-
- u64 ts = unix_time_now_nsec ();
- dpdk_crypto_session_disposal (data->session_disposal, ts);
-
- crypto_session_disposal_t sd;
- sd.ts = ts;
- sd.session = s;
-
- vec_add1 (data->session_disposal, sd);
+ s = (struct rte_cryptodev_sym_session *) val;
+ if (s)
+ {
+ 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)
+ hash_unset (data->session_by_drv_id_and_sa_index, key.val);
+ }
+
+ hash_unset (data->session_by_sa_index, sa_index);
+
+ u64 ts = unix_time_now_nsec ();
+ dpdk_crypto_session_disposal (data->session_disposal, ts);
+
+ crypto_session_disposal_t sd;
+ sd.ts = ts;
+ sd.session = s;
+
+ vec_add1 (data->session_disposal, sd);
+ }
+ clib_spinlock_unlock_if_init (&data->lockp);