[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 18/41] virtio-crypto: avoid one cryptodev device is u
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PULL 18/41] virtio-crypto: avoid one cryptodev device is used by multiple virtio crypto devices |
Date: |
Tue, 10 Jan 2017 07:40:06 +0200 |
From: Gonglei <address@hidden>
Add the check condition for cryptodev device in order
to avoid one cryptodev device is used by multiple
virtio crypto devices.
Signed-off-by: Gonglei <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
---
hw/virtio/virtio-crypto.c | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/hw/virtio/virtio-crypto.c b/hw/virtio/virtio-crypto.c
index 9213258..fc30bc3 100644
--- a/hw/virtio/virtio-crypto.c
+++ b/hw/virtio/virtio-crypto.c
@@ -877,6 +877,20 @@ static void virtio_crypto_class_init(ObjectClass *klass,
void *data)
vdc->reset = virtio_crypto_reset;
}
+static void
+virtio_crypto_check_cryptodev_is_used(Object *obj, const char *name,
+ Object *val, Error **errp)
+{
+ if (cryptodev_backend_is_used(CRYPTODEV_BACKEND(val))) {
+ char *path = object_get_canonical_path_component(val);
+ error_setg(errp,
+ "can't use already used cryptodev backend: %s", path);
+ g_free(path);
+ } else {
+ qdev_prop_allow_set_link_before_realize(obj, name, val, errp);
+ }
+}
+
static void virtio_crypto_instance_init(Object *obj)
{
VirtIOCrypto *vcrypto = VIRTIO_CRYPTO(obj);
@@ -890,7 +904,7 @@ static void virtio_crypto_instance_init(Object *obj)
object_property_add_link(obj, "cryptodev",
TYPE_CRYPTODEV_BACKEND,
(Object **)&vcrypto->conf.cryptodev,
- qdev_prop_allow_set_link_before_realize,
+ virtio_crypto_check_cryptodev_is_used,
OBJ_PROP_LINK_UNREF_ON_RELEASE, NULL);
}
--
MST
- Re: [Qemu-devel] [PULL 08/41] intel_iommu: support device iotlb descriptor, (continued)
- [Qemu-devel] [PULL 09/41] virtio-pci: address space translation service (ATS) support, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 10/41] acpi: add ATSR for q35, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 11/41] memory: handle alias for iommu notifier, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 12/41] memory: handle alias in memory_region_is_iommu(), Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 13/41] doc/pcie: correct command line examples, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 14/41] virtio-crypto: use the correct length for cipher operation, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 15/41] cryptodev: introduce a new is_used property, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 16/41] cryptodev: wrap the ready flag, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 17/41] virtio-crypto-pci: add check for cryptodev object, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 18/41] virtio-crypto: avoid one cryptodev device is used by multiple virtio crypto devices,
Michael S. Tsirkin <=
- [Qemu-devel] [PULL 19/41] virtio-crypto-pci: tag virtio-crypto device hot pluggable, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 20/41] virtio-crypto: zeroize the key material before free, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 21/41] pcie_aer: Convert pcie_aer_init to Error, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 23/41] virtio: fix vq->inuse recalc after migr, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 22/41] pcie_aer: support configurable AER capa version, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 24/41] balloon: Don't balloon roms, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 25/41] net: Add virtio queue interface to update used index from vring state, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 27/41] virtio: Introduce virtqueue_drop_all procedure, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 26/41] net: vhost stop updates virtio queue state, Michael S. Tsirkin, 2017/01/10
- [Qemu-devel] [PULL 28/41] net: virtio-net discards TX data after link down, Michael S. Tsirkin, 2017/01/10