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 <abologna@xxxxxxxxxx> Reviewed-by: Laine Stump <laine@xxxxxxxxx> > --- > src/qemu/qemu_domain.c | 52 ++++++++++++++++++++++++++ > tests/qemuxml2argvdata/pcie-expander-bus.xml | 3 -- > tests/qemuxml2xmloutdata/pcie-expander-bus.xml | 4 +- > 3 files changed, 53 insertions(+), 6 deletions(-) > > diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c > index 1354d9850a..07ed006f70 100644 > --- a/src/qemu/qemu_domain.c > +++ b/src/qemu/qemu_domain.c > @@ -4747,6 +4747,58 @@ qemuDomainDeviceDefValidateControllerPCI(const virDomainControllerDef *cont, > return -1; > } > > + /* numaNode */ > + switch ((virDomainControllerModelPCI) cont->model) { > + case VIR_DOMAIN_CONTROLLER_MODEL_PCI_EXPANDER_BUS: > + case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_EXPANDER_BUS: > + /* numaNode can be used for these controllers, but it's not set > + * automatically so it can be missing */ > + break; > + > + case VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT: > + /* Only PHBs support numaNode */ > + if (pciopts->numaNode != -1 && > + pciopts->modelName != VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_SPAPR_PCI_HOST_BRIDGE) { > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, > + _("Option '%s' is not valid for '%s' controller"), > + "numaNode", model); > + return -1; > + } > + > + /* However, the default PHB doesn't support numaNode */ > + if (pciopts->numaNode != -1 && > + pciopts->modelName == VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_SPAPR_PCI_HOST_BRIDGE && > + pciopts->targetIndex == 0) { > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, > + _("Option '%s' is not valid for '%s' controller " > + "with '%s' equal to 0"), > + "numaNode", model, > + "targetIndex"); > + return -1; > + } > + break; > + > + 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->numaNode != -1) { > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, > + _("Option '%s' is not valid for '%s' controller"), > + "numaNode", 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 237430a1e5..5c5d34d1e0 100644 > --- a/tests/qemuxml2argvdata/pcie-expander-bus.xml > +++ b/tests/qemuxml2argvdata/pcie-expander-bus.xml > @@ -35,9 +35,6 @@ > <address type='pci' bus='0x00' slot='4'/> > </controller> > <controller type='pci' index='2' model='pcie-root-port'> > - <target> > - <node>1</node> > - </target> > <address type='pci' bus='0x01'/> > </controller> > <controller type='pci' index='3' model='pcie-switch-upstream-port'> > diff --git a/tests/qemuxml2xmloutdata/pcie-expander-bus.xml b/tests/qemuxml2xmloutdata/pcie-expander-bus.xml > index d5e741b80d..b6498fd2eb 100644 > --- a/tests/qemuxml2xmloutdata/pcie-expander-bus.xml > +++ b/tests/qemuxml2xmloutdata/pcie-expander-bus.xml > @@ -36,9 +36,7 @@ > </controller> > <controller type='pci' index='2' model='pcie-root-port'> > <model name='ioh3420'/> > - <target chassis='2' port='0x0'> > - <node>1</node> > - </target> > + <target chassis='2' port='0x0'/> > <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> > </controller> > <controller type='pci' index='3' model='pcie-switch-upstream-port'> -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list