On 05/10/2018 05:41 PM, Fan Zhang wrote:
This patch enables the handling of buffers non-contiguous in virtual address space in the vhost_crypto. Instead of using rte_vhost_va_from_guest_pa(), the host virtual address is converted by vhost_iova_to_vva() for wider use cases. For copy mode, the copy length is limited to the chunck size, next chuncks VAs being fetched afterward. Signed-off-by: Fan Zhang <roy.fan.zh...@intel.com> --- lib/librte_vhost/vhost_crypto.c | 201 ++++++++++++++++++++++++++-------------- 1 file changed, 129 insertions(+), 72 deletions(-)
...
+ req = get_data_ptr(vc_req, &desc, sizeof(*req), VHOST_ACCESS_RO); + if (unlikely(req == NULL))
Adding braces around the switch would be less error prone IMHO.
+ switch (vcrypto->option) { + case RTE_VHOST_CRYPTO_ZERO_COPY_ENABLE: + err = VIRTIO_CRYPTO_BADMSG; + VC_LOG_ERR("Invalid descriptor"); + goto error_exit; + case RTE_VHOST_CRYPTO_ZERO_COPY_DISABLE: + req = &tmp_req; + if (unlikely(copy_data(req, vc_req, &desc, sizeof(*req)) + < 0)) { + err = VIRTIO_CRYPTO_BADMSG; + VC_LOG_ERR("Invalid descriptor"); + goto error_exit; + } + break; + default: + err = VIRTIO_CRYPTO_ERR; + VC_LOG_ERR("Invalid option"); + goto error_exit; + }
Other than than, it looks good to me. Reviewed-by: Maxime Coquelin <maxime.coque...@redhat.com> I will add the braces when applying. Thanks, Maxime