[dpdk-dev] vhost/crypto: fix desc moving for copy mode
Checks
Commit Message
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@intel.com>
---
lib/librte_vhost/vhost_crypto.c | 9 +++++++++
1 file changed, 9 insertions(+)
Comments
On 04/11/2018 12:09 PM, Fan Zhang wrote:
> 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@intel.com>
> ---
> lib/librte_vhost/vhost_crypto.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Thanks,
Maxime
On 04/11/2018 12:09 PM, Fan Zhang wrote:
> 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@intel.com>
> ---
> lib/librte_vhost/vhost_crypto.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
Applied to dpdk-next-virtio/master
thanks,
Maxime
On 4/11/2018 3:41 PM, Maxime Coquelin wrote:
>
>
> On 04/11/2018 12:09 PM, Fan Zhang wrote:
>> 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@intel.com>
>> ---
>> lib/librte_vhost/vhost_crypto.c | 9 +++++++++
>> 1 file changed, 9 insertions(+)
>
> Applied to dpdk-next-virtio/master
Squashed into relevant commit in next-net, thanks.
@@ -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;