]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: node_device: refactor GetPCIMdevTypesCaps into GetMdevTypeCapes
authorBoris Fiuczynski <fiuczy@linux.ibm.com>
Fri, 23 Oct 2020 17:31:46 +0000 (19:31 +0200)
committerJán Tomko <jtomko@redhat.com>
Wed, 4 Nov 2020 18:14:52 +0000 (19:14 +0100)
Extracting PCI from virNodeDeviceGetPCIMdevTypesCaps creating
virNodeDeviceGetMdevTypesCaps to make later reuse possible.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/node_device_conf.c

index 5466f8d94ddc87a1c35fe8893fb2f2d8713e75c4..7fa1214c30a94945273d43f11c06299393efc73d 100644 (file)
@@ -2584,26 +2584,25 @@ virNodeDeviceGetPCIIOMMUGroupCaps(virNodeDevCapPCIDevPtr pci_dev)
 
 
 static int
-virNodeDeviceGetPCIMdevTypesCaps(const char *sysfspath,
-                                 virNodeDevCapPCIDevPtr pci_dev)
+virNodeDeviceGetMdevTypesCaps(const char *sysfspath,
+                              virMediatedDeviceTypePtr **mdev_types,
+                              size_t *nmdev_types)
 {
     virMediatedDeviceTypePtr *types = NULL;
     size_t ntypes = 0;
     size_t i;
 
     /* this could be a refresh, so clear out the old data */
-    for (i = 0; i < pci_dev->nmdev_types; i++)
-       virMediatedDeviceTypeFree(pci_dev->mdev_types[i]);
-    VIR_FREE(pci_dev->mdev_types);
-    pci_dev->nmdev_types = 0;
-    pci_dev->flags &= ~VIR_NODE_DEV_CAP_FLAG_PCI_MDEV;
+    for (i = 0; i < *nmdev_types; i++)
+       virMediatedDeviceTypeFree(*mdev_types[i]);
+    VIR_FREE(*mdev_types);
+    *nmdev_types = 0;
 
     if (virMediatedDeviceGetMdevTypes(sysfspath, &types, &ntypes) < 0)
         return -1;
 
-    pci_dev->mdev_types = g_steal_pointer(&types);
-    pci_dev->nmdev_types = ntypes;
-    pci_dev->flags |= VIR_NODE_DEV_CAP_FLAG_PCI_MDEV;
+    *mdev_types = g_steal_pointer(&types);
+    *nmdev_types = ntypes;
 
     return 0;
 }
@@ -2620,9 +2619,17 @@ virNodeDeviceGetPCIDynamicCaps(const char *sysfsPath,
                                virNodeDevCapPCIDevPtr pci_dev)
 {
     if (virNodeDeviceGetPCISRIOVCaps(sysfsPath, pci_dev) < 0 ||
-        virNodeDeviceGetPCIIOMMUGroupCaps(pci_dev) < 0 ||
-        virNodeDeviceGetPCIMdevTypesCaps(sysfsPath, pci_dev) < 0)
+        virNodeDeviceGetPCIIOMMUGroupCaps(pci_dev) < 0)
+        return -1;
+
+    pci_dev->flags &= ~VIR_NODE_DEV_CAP_FLAG_PCI_MDEV;
+    if (virNodeDeviceGetMdevTypesCaps(sysfsPath,
+                                      &pci_dev->mdev_types,
+                                      &pci_dev->nmdev_types) < 0)
         return -1;
+    if (pci_dev->nmdev_types > 0)
+        pci_dev->flags |= VIR_NODE_DEV_CAP_FLAG_PCI_MDEV;
+
     return 0;
 }