The old ivshmem is deprecated in QEMU, so let's use the better
ivshmem-{plain,doorbell} variants instead.
Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
---
docs/schemas/domaincommon.rng | 2 ++
src/conf/domain_conf.c | 4 +++-
src/conf/domain_conf.h | 2 ++
src/qemu/qemu_command.c | 7 +++++++
4 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index fd7d52d72515..9827d6511781 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -3598,6 +3598,8 @@
<attribute name="type">
<choice>
<value>ivshmem</value>
+ <value>ivshmem-plain</value>
+ <value>ivshmem-doorbell</value>
</choice>
</attribute>
</element>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 2ccc10515f30..eeb8238c6b2f 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -844,7 +844,9 @@ VIR_ENUM_IMPL(virDomainMemoryModel, VIR_DOMAIN_MEMORY_MODEL_LAST,
"", "dimm")
VIR_ENUM_IMPL(virDomainShmemModel, VIR_DOMAIN_SHMEM_MODEL_LAST,
- "ivshmem")
+ "ivshmem",
+ "ivshmem-plain",
+ "ivshmem-doorbell")
VIR_ENUM_IMPL(virDomainShmemRole, VIR_DOMAIN_SHMEM_ROLE_LAST,
"default",
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index bd674a565373..3013278458d8 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1556,6 +1556,8 @@ struct _virDomainNVRAMDef {
typedef enum {
VIR_DOMAIN_SHMEM_MODEL_IVSHMEM,
+ VIR_DOMAIN_SHMEM_MODEL_IVSHMEM_PLAIN,
+ VIR_DOMAIN_SHMEM_MODEL_IVSHMEM_DOORBELL,
VIR_DOMAIN_SHMEM_MODEL_LAST
} virDomainShmemModel;
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 60d662270cc8..2b8e62dd4f30 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -8660,6 +8660,13 @@ qemuBuildShmemCommandLine(virLogManagerPtr logManager,
VIR_FREE(devstr);
break;
+ case VIR_DOMAIN_SHMEM_MODEL_IVSHMEM_PLAIN:
+ case VIR_DOMAIN_SHMEM_MODEL_IVSHMEM_DOORBELL:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("%s device is not supported with this QEMU binary"),
+ virDomainShmemModelTypeToString(shmem->model));
+ break;
+
/* coverity[dead_error_begin] */
case VIR_DOMAIN_SHMEM_MODEL_LAST:
return -1;
--
2.10.0