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
|
||||
|
||||
|
||||
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
|
||||
virDomainDefValidateInternal(const virDomainDef *def,
|
||||
virDomainXMLOptionPtr xmlopt)
|
||||
@ -1058,22 +1083,8 @@ virDomainDefValidateInternal(const virDomainDef *def,
|
||||
if (virDomainDefValidateAliases(def, NULL) < 0)
|
||||
return -1;
|
||||
|
||||
if (def->iommu &&
|
||||
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')"));
|
||||
if (virDomainDefIOMMUValidate(def) < 0)
|
||||
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)
|
||||
return -1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user