Since the introduction of shmem, there was a split of preparation code
from the formatting code from qemuBuildCommandLine() into
qemuProcessPrepareDomain(). Let's fix shmem in this regard, so that
we can slowly get to a cleaner codebase.
Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
---
src/qemu/qemu_command.c | 30 +++++-------------------------
src/qemu/qemu_process.c | 5 +++++
2 files changed, 10 insertions(+), 25 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index d14bb621148d..90471d89eb8c 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -8876,28 +8876,6 @@ qemuBuildShmemDevStr(virDomainDefPtr def,
return virBufferContentAndReset(&buf);
}
-static char *
-qemuBuildShmemBackendChrStr(virLogManagerPtr logManager,
- virCommandPtr cmd,
- virQEMUDriverConfigPtr cfg,
- virDomainDefPtr def,
- virDomainShmemDefPtr shmem,
- virQEMUCapsPtr qemuCaps,
- bool chardevStdioLogd)
-{
- char *devstr = NULL;
-
- if (qemuDomainPrepareShmemChardev(shmem) < 0)
- return NULL;
-
- devstr = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
- &shmem->server.chr,
- shmem->info.alias, qemuCaps, true,
- chardevStdioLogd);
-
- return devstr;
-}
-
virJSONValuePtr
qemuBuildShmemBackendMemProps(virDomainShmemDefPtr shmem)
@@ -9007,9 +8985,11 @@ qemuBuildShmemCommandLine(virLogManagerPtr logManager,
VIR_FREE(devstr);
if (shmem->server.enabled) {
- if (!(devstr = qemuBuildShmemBackendChrStr(logManager, cmd, cfg, def,
- shmem, qemuCaps,
- chardevStdioLogd)))
+ devstr = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
+ &shmem->server.chr,
+ shmem->info.alias, qemuCaps, true,
+ chardevStdioLogd);
+ if (!devstr)
return -1;
virCommandAddArgList(cmd, "-chardev", devstr, NULL);
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 525521aaf0ca..b2e1314a3887 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -5325,6 +5325,11 @@ qemuProcessPrepareDomain(virConnectPtr conn,
if (qemuProcessUpdateGuestCPU(vm->def, priv->qemuCaps, caps, flags) < 0)
goto cleanup;
+ for (i = 0; i < vm->def->nshmems; i++) {
+ if (qemuDomainPrepareShmemChardev(vm->def->shmems[i]) < 0)
+ goto cleanup;
+ }
+
ret = 0;
cleanup:
virObjectUnref(caps);
--
2.13.3