[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 05/10] virtio-crypto: add dataq operation logic for mu
From: |
Longpeng(Mike) |
Subject: |
[Qemu-devel] [RFC 05/10] virtio-crypto: add dataq operation logic for mux mode |
Date: |
Mon, 6 Nov 2017 14:56:57 +0800 |
Adds dataq operation support for MUX mode.
Signed-off-by: Longpeng(Mike) <address@hidden>
---
hw/virtio/virtio-crypto.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/hw/virtio/virtio-crypto.c b/hw/virtio/virtio-crypto.c
index 828d7ef..10a0c35 100644
--- a/hw/virtio/virtio-crypto.c
+++ b/hw/virtio/virtio-crypto.c
@@ -663,6 +663,9 @@ virtio_crypto_handle_request(VirtIOCryptoReq *request)
opcode = ldl_le_p(&hdr.opcode);
session_id = ldq_le_p(&hdr.session_id);
+#define data_req_payload_size(vdev, req) \
+ (virtio_crypto_in_mux_mode((vdev)) ? sizeof((req)) : \
+ VIRTIO_CRYPTO_DATA_REQ_PAYLOAD_SIZE_NONMUX)
switch (opcode) {
case VIRTIO_CRYPTO_CIPHER_ENCRYPT:
case VIRTIO_CRYPTO_CIPHER_DECRYPT:
@@ -671,7 +674,7 @@ virtio_crypto_handle_request(VirtIOCryptoReq *request)
iov_to_buf(out_iov, out_num, 0, &req, sizeof(req));
/* The unused part of the req will be ingored */
- s = VIRTIO_CRYPTO_DATA_REQ_PAYLOAD_SIZE_NONMUX;
+ s = data_req_payload_size(vdev, req);
if (unlikely(s != iov_discard_front(&out_iov, &out_num, s))) {
virtio_error(vdev, "virtio-crypto request additional "
"parameters too short");
@@ -718,6 +721,7 @@ virtio_crypto_handle_request(VirtIOCryptoReq *request)
virtio_crypto_req_complete(request, VIRTIO_CRYPTO_NOTSUPP);
virtio_crypto_free_request(request);
}
+#undef data_req_payload_size
return 0;
}
--
1.8.3.1
- [Qemu-devel] [RFC 00/10] virtio-crypto: add multiplexing mode support, Longpeng(Mike), 2017/11/06
- [Qemu-devel] [RFC 03/10] virtio-crypto: remove queue_id field in ctrl header, Longpeng(Mike), 2017/11/06
- [Qemu-devel] [RFC 01/10] virtio-crypto: remove virtio_crypto_op_ctrl_req structure, Longpeng(Mike), 2017/11/06
- [Qemu-devel] [RFC 06/10] cryptodev: add stateless mode cipher support, Longpeng(Mike), 2017/11/06
- [Qemu-devel] [RFC 08/10] cryptodev: extract one util function, Longpeng(Mike), 2017/11/06
- [Qemu-devel] [RFC 07/10] virtio-crypto: add stateless crypto request handler, Longpeng(Mike), 2017/11/06
- [Qemu-devel] [RFC 10/10] virtio-crypto: add host feature bits support, Longpeng(Mike), 2017/11/06
- [Qemu-devel] [RFC 04/10] virtio-crypto: remove virtio_crypto_op_data_req structure, Longpeng(Mike), 2017/11/06
- [Qemu-devel] [RFC 09/10] cryptodev-builtin: add stateless cipher support, Longpeng(Mike), 2017/11/06
- [Qemu-devel] [RFC 02/10] virtio-crypto: add session creation logic for mux mode, Longpeng(Mike), 2017/11/06
- [Qemu-devel] [RFC 05/10] virtio-crypto: add dataq operation logic for mux mode,
Longpeng(Mike) <=
- Re: [Qemu-devel] [RFC 00/10] virtio-crypto: add multiplexing mode support, no-reply, 2017/11/06