@@ -1199,6 +1199,26 @@ qemuDomainDefAddDefaultDevices(virDomainDefPtr def,
static int
+qemuCanonicalizeMachine(virDomainDefPtr def, virQEMUCapsPtr qemuCaps)
+{
+ const char *canon;
+
+ if (!(canon = virQEMUCapsGetCanonicalMachine(qemuCaps, def->os.machine)))
+ return 0;
+
+ if (STRNEQ(canon, def->os.machine)) {
+ char *tmp;
+ if (VIR_STRDUP(tmp, canon) < 0)
+ return -1;
+ VIR_FREE(def->os.machine);
+ def->os.machine = tmp;
+ }
+
+ return 0;
+}
+
+
+static int
qemuDomainDefPostParse(virDomainDefPtr def,
virCapsPtr caps,
void *opaque)
@@ -1223,6 +1243,9 @@ qemuDomainDefPostParse(virDomainDefPtr def,
if (qemuDomainDefAddDefaultDevices(def, qemuCaps) < 0)
goto cleanup;
+ if (qemuCanonicalizeMachine(def, qemuCaps) < 0)
+ goto cleanup;
+
ret = 0;
cleanup:
virObjectUnref(qemuCaps);
@@ -1684,26 +1684,6 @@ static int qemuConnectNumOfDomains(virConnectPtr conn)
}
-static int
-qemuCanonicalizeMachine(virDomainDefPtr def, virQEMUCapsPtr qemuCaps)
-{
- const char *canon;
-
- if (!(canon = virQEMUCapsGetCanonicalMachine(qemuCaps, def->os.machine)))
- return 0;
-
- if (STRNEQ(canon, def->os.machine)) {
- char *tmp;
- if (VIR_STRDUP(tmp, canon) < 0)
- return -1;
- VIR_FREE(def->os.machine);
- def->os.machine = tmp;
- }
-
- return 0;
-}
-
-
static virDomainPtr qemuDomainCreateXML(virConnectPtr conn,
const char *xml,
unsigned int flags)
@@ -1749,9 +1729,6 @@ static virDomainPtr qemuDomainCreateXML(virConnectPtr conn,
if (!(qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache, def->emulator)))
goto cleanup;
- if (qemuCanonicalizeMachine(def, qemuCaps) < 0)
- goto cleanup;
-
if (qemuDomainAssignAddresses(def, qemuCaps, NULL) < 0)
goto cleanup;
@@ -7531,9 +7508,6 @@ static virDomainPtr qemuDomainDefineXMLFlags(virConnectPtr conn, const char *xml
if (!(qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache, def->emulator)))
goto cleanup;
- if (qemuCanonicalizeMachine(def, qemuCaps) < 0)
- goto cleanup;
-
if (qemuDomainAssignAddresses(def, qemuCaps, NULL) < 0)
goto cleanup;
@@ -15888,9 +15862,6 @@ static virDomainPtr qemuDomainQemuAttach(virConnectPtr conn,
if (!(qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache, def->emulator)))
goto cleanup;
- if (qemuCanonicalizeMachine(def, qemuCaps) < 0)
- goto cleanup;
-
if (qemuAssignDeviceAliases(def, qemuCaps) < 0)
goto cleanup;