| 1464 | } |
| 1465 | |
| 1466 | int |
| 1467 | rte_vhost_crypto_free(int vid) |
| 1468 | { |
| 1469 | struct virtio_net *dev = get_device(vid); |
| 1470 | struct vhost_crypto *vcrypto; |
| 1471 | |
| 1472 | if (unlikely(dev == NULL)) { |
| 1473 | VC_LOG_ERR("Invalid vid %i", vid); |
| 1474 | return -EINVAL; |
| 1475 | } |
| 1476 | |
| 1477 | vcrypto = dev->extern_data; |
| 1478 | if (unlikely(vcrypto == NULL)) { |
| 1479 | VC_LOG_ERR("Cannot find required data, is it initialized?"); |
| 1480 | return -ENOENT; |
| 1481 | } |
| 1482 | |
| 1483 | rte_hash_free(vcrypto->session_map); |
| 1484 | rte_mempool_free(vcrypto->mbuf_pool); |
| 1485 | rte_mempool_free(vcrypto->wb_pool); |
| 1486 | rte_free(vcrypto); |
| 1487 | |
| 1488 | dev->extern_data = NULL; |
| 1489 | dev->extern_ops.pre_msg_handle = NULL; |
| 1490 | dev->extern_ops.post_msg_handle = NULL; |
| 1491 | |
| 1492 | return 0; |
| 1493 | } |
| 1494 | |
| 1495 | int |
| 1496 | rte_vhost_crypto_set_zero_copy(int vid, enum rte_vhost_crypto_zero_copy option) |
no test coverage detected