mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
domain_validate.c: put IOMMU validation into a new function
All other validations from virDomainDefValidateInternal() are done in their own functions. Take IOMMU validation out of the function body and into its own function. Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
This commit is contained in:
parent
c54673f793
commit
f99576ca7f
@ -1042,6 +1042,31 @@ virDomainDefCputuneValidate(const virDomainDef *def)
|
|||||||
#undef CPUTUNE_VALIDATE_QUOTA
|
#undef CPUTUNE_VALIDATE_QUOTA
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
virDomainDefIOMMUValidate(const virDomainDef *def)
|
||||||
|
{
|
||||||
|
if (!def->iommu)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (def->iommu->intremap == VIR_TRISTATE_SWITCH_ON &&
|
||||||
|
def->features[VIR_DOMAIN_FEATURE_IOAPIC] != VIR_DOMAIN_IOAPIC_QEMU) {
|
||||||
|
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||||
|
_("IOMMU interrupt remapping requires split I/O APIC "
|
||||||
|
"(ioapic driver='qemu')"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (def->iommu->eim == VIR_TRISTATE_SWITCH_ON &&
|
||||||
|
def->iommu->intremap != VIR_TRISTATE_SWITCH_ON) {
|
||||||
|
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||||
|
_("IOMMU eim requires interrupt remapping to be enabled"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virDomainDefValidateInternal(const virDomainDef *def,
|
virDomainDefValidateInternal(const virDomainDef *def,
|
||||||
virDomainXMLOptionPtr xmlopt)
|
virDomainXMLOptionPtr xmlopt)
|
||||||
@ -1058,22 +1083,8 @@ virDomainDefValidateInternal(const virDomainDef *def,
|
|||||||
if (virDomainDefValidateAliases(def, NULL) < 0)
|
if (virDomainDefValidateAliases(def, NULL) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (def->iommu &&
|
if (virDomainDefIOMMUValidate(def) < 0)
|
||||||
def->iommu->intremap == VIR_TRISTATE_SWITCH_ON &&
|
|
||||||
def->features[VIR_DOMAIN_FEATURE_IOAPIC] != VIR_DOMAIN_IOAPIC_QEMU) {
|
|
||||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
|
||||||
_("IOMMU interrupt remapping requires split I/O APIC "
|
|
||||||
"(ioapic driver='qemu')"));
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
|
|
||||||
if (def->iommu &&
|
|
||||||
def->iommu->eim == VIR_TRISTATE_SWITCH_ON &&
|
|
||||||
def->iommu->intremap != VIR_TRISTATE_SWITCH_ON) {
|
|
||||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
|
||||||
_("IOMMU eim requires interrupt remapping to be enabled"));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (virDomainDefLifecycleActionValidate(def) < 0)
|
if (virDomainDefLifecycleActionValidate(def) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user