diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index a5a1f11f21..63974b5fda 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -8192,6 +8192,30 @@ qemuBuildDomainLoaderCommandLine(virCommandPtr cmd, return ret; } +static int +qemuBuildTPMCommandLine(virDomainDefPtr def, + virCommandPtr cmd, + virQEMUCapsPtr qemuCaps, + const char *emulator) +{ + char *optstr; + + if (!(optstr = qemuBuildTPMBackendStr(def, qemuCaps, emulator))) + return -1; + + virCommandAddArgList(cmd, "-tpmdev", optstr, NULL); + VIR_FREE(optstr); + + if (!(optstr = qemuBuildTPMDevStr(def, qemuCaps, emulator))) + return -1; + + virCommandAddArgList(cmd, "-device", optstr, NULL); + VIR_FREE(optstr); + + return 0; +} + + qemuBuildCommandLineCallbacks buildCommandLineCallbacks = { .qemuGetSCSIDeviceSgName = virSCSIDeviceGetSgName, }; @@ -9601,19 +9625,8 @@ qemuBuildCommandLine(virConnectPtr conn, } if (def->tpm) { - char *optstr; - - if (!(optstr = qemuBuildTPMBackendStr(def, qemuCaps, emulator))) + if (qemuBuildTPMCommandLine(def, cmd, qemuCaps, emulator) < 0) goto error; - - virCommandAddArgList(cmd, "-tpmdev", optstr, NULL); - VIR_FREE(optstr); - - if (!(optstr = qemuBuildTPMDevStr(def, qemuCaps, emulator))) - goto error; - - virCommandAddArgList(cmd, "-device", optstr, NULL); - VIR_FREE(optstr); } for (i = 0; i < def->ninputs; i++) {