On 03/02/2018 10:13 AM, Andrea Bolognani wrote: > This change catches an invalid use of the option in our > test suite. > > https://bugzilla.redhat.com/show_bug.cgi?id=1483816 > > Signed-off-by: Andrea Bolognani <abolo...@redhat.com>
Reviewed-by: Laine Stump <la...@laine.org> > --- > src/qemu/qemu_domain.c | 46 > +++++++++++++++++++------- > tests/qemuxml2argvdata/pcie-expander-bus.xml | 2 +- > tests/qemuxml2xmloutdata/pcie-expander-bus.xml | 2 +- > 3 files changed, 36 insertions(+), 14 deletions(-) > > diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c > index 9b8d2e864d..1354d9850a 100644 > --- a/src/qemu/qemu_domain.c > +++ b/src/qemu/qemu_domain.c > @@ -4306,12 +4306,6 @@ qemuDomainDeviceDefValidateControllerPCIOld(const > virDomainControllerDef *contro > break; > > case VIR_DOMAIN_CONTROLLER_MODEL_PCI_EXPANDER_BUS: > - if (pciopts->busNr == -1) { > - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", > - _("autogenerated pci-expander-bus options not > set")); > - return -1; > - } > - > if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_PXB)) { > virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > _("the pxb controller is not supported in this " > @@ -4385,12 +4379,6 @@ qemuDomainDeviceDefValidateControllerPCIOld(const > virDomainControllerDef *contro > break; > > case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_EXPANDER_BUS: > - if (pciopts->busNr == -1) { > - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", > - _("autogenerated pcie-expander-bus options not > set")); > - return -1; > - } > - > if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_PXB_PCIE)) { > virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > _("the pxb-pcie controller is not supported " > @@ -4725,6 +4713,40 @@ qemuDomainDeviceDefValidateControllerPCI(const > virDomainControllerDef *cont, > return -1; > } > > + /* busNr */ > + switch ((virDomainControllerModelPCI) cont->model) { > + case VIR_DOMAIN_CONTROLLER_MODEL_PCI_EXPANDER_BUS: > + case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_EXPANDER_BUS: > + if (pciopts->busNr == -1) { > + virReportError(VIR_ERR_INTERNAL_ERROR, > + _("Option '%s' not set for '%s' controller"), > + "busNr", model); > + return -1; > + } > + break; > + > + case VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT: > + case VIR_DOMAIN_CONTROLLER_MODEL_PCI_BRIDGE: > + case VIR_DOMAIN_CONTROLLER_MODEL_DMI_TO_PCI_BRIDGE: > + case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT_PORT: > + case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_SWITCH_UPSTREAM_PORT: > + case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_SWITCH_DOWNSTREAM_PORT: > + case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT: > + if (pciopts->busNr != -1) { > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, > + _("Option '%s' is not valid for '%s' controller"), > + "busNr", model); > + return -1; > + } > + break; > + > + case VIR_DOMAIN_CONTROLLER_MODEL_PCI_DEFAULT: > + case VIR_DOMAIN_CONTROLLER_MODEL_PCI_LAST: > + default: > + virReportEnumRangeError(virDomainControllerModelPCI, cont->model); > + return -1; > + } > + > return qemuDomainDeviceDefValidateControllerPCIOld(cont, def, qemuCaps); > } > > diff --git a/tests/qemuxml2argvdata/pcie-expander-bus.xml > b/tests/qemuxml2argvdata/pcie-expander-bus.xml > index ac01c26ccf..237430a1e5 100644 > --- a/tests/qemuxml2argvdata/pcie-expander-bus.xml > +++ b/tests/qemuxml2argvdata/pcie-expander-bus.xml > @@ -35,7 +35,7 @@ > <address type='pci' bus='0x00' slot='4'/> > </controller> > <controller type='pci' index='2' model='pcie-root-port'> > - <target busNr='220'> > + <target> > <node>1</node> > </target> > <address type='pci' bus='0x01'/> > diff --git a/tests/qemuxml2xmloutdata/pcie-expander-bus.xml > b/tests/qemuxml2xmloutdata/pcie-expander-bus.xml > index aaac423cac..d5e741b80d 100644 > --- a/tests/qemuxml2xmloutdata/pcie-expander-bus.xml > +++ b/tests/qemuxml2xmloutdata/pcie-expander-bus.xml > @@ -36,7 +36,7 @@ > </controller> > <controller type='pci' index='2' model='pcie-root-port'> > <model name='ioh3420'/> > - <target chassis='2' port='0x0' busNr='220'> > + <target chassis='2' port='0x0'> > <node>1</node> > </target> > <address type='pci' domain='0x0000' bus='0x01' slot='0x00' > function='0x0'/> -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list