}
-static int
-qemuDomainDefVerifyFeatures(const virDomainDef *def)
-{
- if (def->features[VIR_DOMAIN_FEATURE_IOAPIC] == VIR_TRISTATE_SWITCH_ON &&
- !ARCH_IS_X86(def->os.arch)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("I/O APIC tuning is not supported "
- "for '%s' architecture"),
- virArchToString(def->os.arch));
- return -1;
- }
-
- if (def->features[VIR_DOMAIN_FEATURE_HPT] == VIR_TRISTATE_SWITCH_ON &&
- !qemuDomainIsPSeries(def)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- "%s",
- _("HPT tuning is only supported for pSeries guests"));
- return -1;
- }
-
- return 0;
-}
-
-
static int
qemuDomainDefPostParseBasic(virDomainDefPtr def,
virCapsPtr caps,
qemuDomainDefEnableDefaultFeatures(def, qemuCaps);
- if (qemuDomainDefVerifyFeatures(def) < 0)
- goto cleanup;
-
if (qemuDomainRecheckInternalPaths(def, cfg, parseFlags) < 0)
goto cleanup;
#define QEMU_MAX_VCPUS_WITHOUT_EIM 255
+static int
+qemuDomainDefValidateFeatures(const virDomainDef *def)
+{
+ if (def->features[VIR_DOMAIN_FEATURE_IOAPIC] == VIR_TRISTATE_SWITCH_ON &&
+ !ARCH_IS_X86(def->os.arch)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("I/O APIC tuning is not supported "
+ "for '%s' architecture"),
+ virArchToString(def->os.arch));
+ return -1;
+ }
+
+ if (def->features[VIR_DOMAIN_FEATURE_HPT] == VIR_TRISTATE_SWITCH_ON &&
+ !qemuDomainIsPSeries(def)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ "%s",
+ _("HPT tuning is only supported for pSeries guests"));
+ return -1;
+ }
+
+ return 0;
+}
+
+
static int
qemuDomainDefValidate(const virDomainDef *def,
virCapsPtr caps ATTRIBUTE_UNUSED,
}
}
+ if (qemuDomainDefValidateFeatures(def) < 0)
+ goto cleanup;
+
ret = 0;
cleanup: