| 2258 | } |
| 2259 | |
| 2260 | int |
| 2261 | rte_cryptodev_asym_session_free(uint8_t dev_id, void *sess) |
| 2262 | { |
| 2263 | struct rte_mempool *sess_mp; |
| 2264 | struct rte_cryptodev *dev; |
| 2265 | |
| 2266 | if (!rte_cryptodev_is_valid_dev(dev_id)) { |
| 2267 | CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id); |
| 2268 | return -EINVAL; |
| 2269 | } |
| 2270 | |
| 2271 | dev = rte_cryptodev_pmd_get_dev(dev_id); |
| 2272 | |
| 2273 | if (dev == NULL || sess == NULL) |
| 2274 | return -EINVAL; |
| 2275 | |
| 2276 | if (*dev->dev_ops->asym_session_clear == NULL) |
| 2277 | return -ENOTSUP; |
| 2278 | |
| 2279 | dev->dev_ops->asym_session_clear(dev, sess); |
| 2280 | |
| 2281 | rte_free(((struct rte_cryptodev_asym_session *)sess)->event_mdata); |
| 2282 | |
| 2283 | /* Return session to mempool */ |
| 2284 | sess_mp = rte_mempool_from_obj(sess); |
| 2285 | rte_mempool_put(sess_mp, sess); |
| 2286 | |
| 2287 | rte_cryptodev_trace_asym_session_free(dev_id, sess); |
| 2288 | return 0; |
| 2289 | } |
| 2290 | |
| 2291 | unsigned int |
| 2292 | rte_cryptodev_asym_get_header_session_size(void) |