From: Peter Krempa Date: Wed, 8 Dec 2021 09:07:44 +0000 (+0100) Subject: qemu: Implement chardev source setup for tpm X-Git-Tag: v8.0.0-rc1~270 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5c62df7e78dd12b7bdc5c602b89ea5005c869dda;p=thirdparty%2Flibvirt.git qemu: Implement chardev source setup for tpm Add handling to qemuDomainDeviceBackendChardevForeachOne and callbacks so that we can later use 'qemuBuildChardevCommand' for TPM devices. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 475f2f536e..5607d6f581 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -11530,6 +11530,19 @@ qemuDomainDeviceBackendChardevForeachOne(virDomainDeviceDef *dev, return cb(dev, dev->data.rng->source.chardev, opaque); + case VIR_DOMAIN_DEVICE_TPM: + switch ((virDomainTPMBackendType) dev->data.tpm->type) { + case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: + return cb(dev, dev->data.tpm->data.passthrough.source, opaque); + + case VIR_DOMAIN_TPM_TYPE_EMULATOR: + return cb(dev, dev->data.tpm->data.emulator.source, opaque); + + case VIR_DOMAIN_TPM_TYPE_LAST: + return 0; + } + return 0; + case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_FS: case VIR_DOMAIN_DEVICE_INPUT: @@ -11543,7 +11556,6 @@ qemuDomainDeviceBackendChardevForeachOne(virDomainDeviceDef *dev, case VIR_DOMAIN_DEVICE_NONE: case VIR_DOMAIN_DEVICE_MEMBALLOON: case VIR_DOMAIN_DEVICE_NVRAM: - case VIR_DOMAIN_DEVICE_TPM: case VIR_DOMAIN_DEVICE_PANIC: case VIR_DOMAIN_DEVICE_LAST: case VIR_DOMAIN_DEVICE_MEMORY: diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index f9580c1b17..4963ce383f 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -6891,6 +6891,10 @@ qemuProcessPrepareHostBackendChardevOne(virDomainDeviceDef *dev, * vhost-sockets for network devices */ return 0; } + + /* TPMs FD passing setup is special and handled separately */ + if (dev->type == VIR_DOMAIN_DEVICE_TPM) + return 0; } switch ((virDomainChrType) chardev->type) { diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index ac4b532ef1..615f45376c 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -394,6 +394,10 @@ testPrepareHostBackendChardevOne(virDomainDeviceDef *dev, * vhost-sockets for network devices */ return 0; } + + /* TPMs FD passing setup is special and handled separately */ + if (dev->type == VIR_DOMAIN_DEVICE_TPM) + return 0; } switch ((virDomainChrType) chardev->type) {