[libvirt] [PATCH v3 2/6] nodedev: conf: Split PCI sub-capability parsing to separate methods

Pavel Hrdina phrdina at redhat.com
Tue May 9 12:46:08 UTC 2017


On Wed, Apr 26, 2017 at 04:55:29PM +0200, Erik Skultety wrote:
> Since there's at least SRIOV and MDEV sub-capabilities to be parsed,
> let's make the code more readable by splitting it to several logical
> blocks.
> 
> Signed-off-by: Erik Skultety <eskultet at redhat.com>
> ---
>  src/conf/node_device_conf.c | 130 ++++++++++++++++++++++++++------------------
>  1 file changed, 77 insertions(+), 53 deletions(-)
> 
> diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
> index 85cfd8396..d70d9942c 100644
> --- a/src/conf/node_device_conf.c
> +++ b/src/conf/node_device_conf.c
> @@ -1286,76 +1286,102 @@ virPCIEDeviceInfoParseXML(xmlXPathContextPtr ctxt,
>  
>  
>  static int
> -virNodeDevPCICapabilityParseXML(xmlXPathContextPtr ctxt,
> -                                xmlNodePtr node,
> -                                virNodeDevCapPCIDevPtr pci_dev)
> +virNodeDevPCICapSRIOVPhysicalParseXML(xmlXPathContextPtr ctxt,
> +                                      virNodeDevCapPCIDevPtr pci_dev)
>  {
> -    char *maxFuncsStr = virXMLPropString(node, "maxCount");
> -    char *type = virXMLPropString(node, "type");
> -    xmlNodePtr *addresses = NULL;
> -    xmlNodePtr orignode = ctxt->node;
> -    int ret = -1;
> -    size_t i = 0;
> -
> -    ctxt->node = node;
> -
> -    if (!type) {
> -        virReportError(VIR_ERR_XML_ERROR, "%s", _("Missing capability type"));
> -        goto out;
> -    }
> -
> -    if (STREQ(type, "phys_function")) {
> -        xmlNodePtr address = virXPathNode("./address[1]", ctxt);
> +    xmlNodePtr address = virXPathNode("./address[1]", ctxt);
>  
>          if (VIR_ALLOC(pci_dev->physical_function) < 0)
> -            goto out;
> +            return -1;
>  
>          if (!address) {
>              virReportError(VIR_ERR_XML_ERROR, "%s",
>                             _("Missing address in 'phys_function' capability"));
> -            goto out;
> +            return -1;
>          }
>  
>          if (virPCIDeviceAddressParseXML(address,
>                                          pci_dev->physical_function) < 0)
> -            goto out;
> +            return -1;
>  
>          pci_dev->flags |= VIR_NODE_DEV_CAP_FLAG_PCI_PHYSICAL_FUNCTION;

Wrong indentation of the function body.

Pavel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170509/9b7c7848/attachment-0001.sig>


More information about the libvir-list mailing list