From: Andrea Bolognani Date: Mon, 23 May 2016 09:54:44 +0000 (+0200) Subject: conf: nodedev: Set PCI_PHYSICAL_FUNCTION flag more carefully X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=54f325e92544dc8f9fe06cefcfda9ab57f8f6884;p=libvirt.git conf: nodedev: Set PCI_PHYSICAL_FUNCTION flag more carefully Instead of setting the flag before parsing the PCI address, set it afterwards. This ensure we can never end up in a situation where the flag has been set but pci_dev.physical_function has not been filled in. --- diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c index aed95d56d0..a23d8ef99e 100644 --- a/src/conf/node_device_conf.c +++ b/src/conf/node_device_conf.c @@ -1293,8 +1293,6 @@ virNodeDevPCICapabilityParseXML(xmlXPathContextPtr ctxt, if (VIR_ALLOC(data->pci_dev.physical_function) < 0) goto out; - data->pci_dev.flags |= VIR_NODE_DEV_CAP_FLAG_PCI_PHYSICAL_FUNCTION; - if (!address) { virReportError(VIR_ERR_XML_ERROR, "%s", _("Missing address in 'phys_function' capability")); @@ -1304,6 +1302,8 @@ virNodeDevPCICapabilityParseXML(xmlXPathContextPtr ctxt, if (virPCIDeviceAddressParseXML(address, data->pci_dev.physical_function) < 0) goto out; + + data->pci_dev.flags |= VIR_NODE_DEV_CAP_FLAG_PCI_PHYSICAL_FUNCTION; } else if (STREQ(type, "virt_functions")) { int naddresses;