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

Reply via email to