[dpdk-dev] [PATCH] vhost/crypto: fix desc moving for copy mode

Fan Zhang roy.fan.zhang at intel.com
Wed Apr 11 12:09:07 CEST 2018


Fixes: cd39f8e4fd2a ("vhost/crypto: add request handler")

This patch fixes the descriptor moving for copy mode by adding
the missing moving step after destination data parsing.

Signed-off-by: Fan Zhang <roy.fan.zhang at intel.com>
---
 lib/librte_vhost/vhost_crypto.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/lib/librte_vhost/vhost_crypto.c b/lib/librte_vhost/vhost_crypto.c
index ab75db0b1..363a034cb 100644
--- a/lib/librte_vhost/vhost_crypto.c
+++ b/lib/librte_vhost/vhost_crypto.c
@@ -694,6 +694,10 @@ prepare_sym_cipher_op(struct vhost_crypto *vcrypto, struct rte_crypto_op *op,
 	case RTE_VHOST_CRYPTO_ZERO_COPY_DISABLE:
 		vc_req->wb_desc = desc;
 		vc_req->wb_len = cipher->para.dst_data_len;
+		if (unlikely(move_desc(head, &desc, vc_req->wb_len) < 0)) {
+			ret = VIRTIO_CRYPTO_ERR;
+			goto error_exit;
+		}
 		break;
 	default:
 		ret = VIRTIO_CRYPTO_BADMSG;
@@ -840,6 +844,11 @@ prepare_sym_chain_op(struct vhost_crypto *vcrypto, struct rte_crypto_op *op,
 		op->sym->auth.digest.data = digest_addr;
 		op->sym->auth.digest.phys_addr = rte_pktmbuf_iova_offset(m_dst,
 				digest_offset);
+		if (unlikely(move_desc(head, &desc,
+				chain->para.hash_result_len) < 0)) {
+			ret = VIRTIO_CRYPTO_ERR;
+			goto error_exit;
+		}
 		break;
 	default:
 		ret = VIRTIO_CRYPTO_BADMSG;
-- 
2.13.6



More information about the dev mailing list