[libvirt] [PATCH 1/5] nodedev: Fix parsing of generated XMLs

Laine Stump laine at laine.org
Mon Apr 4 11:35:39 UTC 2016


On 04/03/2016 03:27 PM, Martin Kletzander wrote:
> Commit d77ffb6876 added not only reporting of the PCI header type, but
> also parsing of that information.  However, because there was no parsing
> done for the other sub-PCI capabilities, if there was any other
> capability then a valid header type name (like phys_function or
> virt_functions) the parsing would fail.  This prevented passing node
> device XMLs that we generated into our own functions when dealing with,
> e.g. with SRIOV cards.
>
> Instead of reworking the whole parsing, just fix this one occurence and
> remove a test for it for the time being.  Future patches will deal with
> the rest.
>
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
>   src/conf/node_device_conf.c | 12 ------------
>   tests/nodedevxml2xmltest.c  |  2 --
>   2 files changed, 14 deletions(-)
>
> diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
> index f74b34de5cd2..a76f785eddc0 100644
> --- a/src/conf/node_device_conf.c
> +++ b/src/conf/node_device_conf.c
> @@ -1336,18 +1336,6 @@ virNodeDevCapPCIDevParseXML(xmlXPathContextPtr ctxt,
>                                             _("invalid NUMA node ID supplied for '%s'")) < 0)
>           goto out;
>
> -    if ((tmp = virXPathString("string(./capability[1]/@type)", ctxt))) {
> -        int hdrType = virPCIHeaderTypeFromString(tmp);
> -
> -        if (hdrType <= 0) {
> -            virReportError(VIR_ERR_INTERNAL_ERROR,
> -                           _("Unknown PCI header type '%s'"), tmp);
> -            goto out;
> -        }
> -
> -        data->pci_dev.hdrType = hdrType;
> -    }
> -

Yes, this makes nodedev-detach/nodedev-reattach work properly again.

ACK and safe for freeze.

Thanks for taking care of this!

>       if ((pciExpress = virXPathNode("./pci-express[1]", ctxt))) {
>           if (VIR_ALLOC(pci_express) < 0)
>               goto out;
> diff --git a/tests/nodedevxml2xmltest.c b/tests/nodedevxml2xmltest.c
> index 246cec710178..96041f50b9cd 100644
> --- a/tests/nodedevxml2xmltest.c
> +++ b/tests/nodedevxml2xmltest.c
> @@ -91,8 +91,6 @@ mymain(void)
>       DO_TEST("usb_device_1d6b_1_0000_00_1d_0");
>       DO_TEST("pci_8086_4238_pcie_wireless");
>       DO_TEST("pci_8086_0c0c_snd_hda_intel");
> -    DO_TEST("pci_0000_00_02_0_header_type");
> -    DO_TEST("pci_0000_00_1c_0_header_type");
>       DO_TEST("scsi_target0_0_0");
>
>       return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;




More information about the libvir-list mailing list