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

2016-04-04 Thread Laine Stump

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 
---
  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__00_1d_0");
  DO_TEST("pci_8086_4238_pcie_wireless");
  DO_TEST("pci_8086_0c0c_snd_hda_intel");
-DO_TEST("pci__00_02_0_header_type");
-DO_TEST("pci__00_1c_0_header_type");
  DO_TEST("scsi_target0_0_0");

  return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


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

2016-04-03 Thread Martin Kletzander
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 
---
 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;
-}
-
 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__00_1d_0");
 DO_TEST("pci_8086_4238_pcie_wireless");
 DO_TEST("pci_8086_0c0c_snd_hda_intel");
-DO_TEST("pci__00_02_0_header_type");
-DO_TEST("pci__00_1c_0_header_type");
 DO_TEST("scsi_target0_0_0");

 return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
-- 
2.8.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list