hostdev has mode "capabilities" for LXC, from formatdomain.html: " Block / character devices from the host can be passed through to the guest using the hostdev element. This is only possible with container based virtualization. since after 1.0.1 for LXC " So forbid capabilities mode hostdev if domain is not LXC. The related bug is: https://bugzilla.redhat.com/show_bug.cgi?id=1111044 Signed-off-by: Jincheng Miao <jmiao@xxxxxxxxxx> --- src/conf/domain_conf.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 4114289..5ae6614 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -9574,6 +9574,12 @@ virDomainHostdevDefParseXML(virDomainXMLOptionPtr xmlopt, goto error; break; case VIR_DOMAIN_HOSTDEV_MODE_CAPABILITIES: + if (vmdef->virtType != VIR_DOMAIN_VIRT_LXC) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Unsupported capabilities mode hostdev in %s"), + virDomainVirtTypeToString(vmdef->virtType)); + goto error; + } /* parse managed/mode/type, and the <source> element */ if (virDomainHostdevDefParseXMLCaps(node, ctxt, type, def) < 0) goto error; @@ -9596,7 +9602,7 @@ virDomainHostdevDefParseXML(virDomainXMLOptionPtr xmlopt, case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: if (def->info->type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE && def->info->type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + virReportError(VIR_ERR_XML_DETAIL, "%s", _("PCI host devices must use 'pci' address type")); goto error; } @@ -9605,7 +9611,7 @@ virDomainHostdevDefParseXML(virDomainXMLOptionPtr xmlopt, if (def->info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE && virDomainHostdevAssignAddress(xmlopt, vmdef, def) < 0) { - virReportError(VIR_ERR_XML_ERROR, "%s", + virReportError(VIR_ERR_XML_DETAIL, "%s", _("SCSI host devices must have address specified")); goto error; } -- 1.8.3.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list