[PATCH RESEND 19/20] virpci.c: use virPCIDeviceAddressPtr in virPCIDeviceListDel()

Daniel Henrique Barboza danielhb413 at gmail.com
Mon Jan 18 19:53:35 UTC 2021


This change will allow us to remove PCI devices from a list
without the need of a PCI Device object, which will be need
in the next patch.

Signed-off-by: Daniel Henrique Barboza <danielhb413 at gmail.com>
---
 src/hypervisor/virhostdev.c | 7 ++++---
 src/util/virpci.c           | 6 +++---
 src/util/virpci.h           | 2 +-
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/hypervisor/virhostdev.c b/src/hypervisor/virhostdev.c
index 4042f874d6..c708791eec 100644
--- a/src/hypervisor/virhostdev.c
+++ b/src/hypervisor/virhostdev.c
@@ -1005,11 +1005,11 @@ virHostdevReAttachPCIDevicesImpl(virHostdevManagerPtr mgr,
             if (STRNEQ_NULLABLE(drv_name, actual_drvname) ||
                 STRNEQ_NULLABLE(dom_name, actual_domname)) {
 
-                virPCIDeviceListDel(pcidevs, pci);
+                virPCIDeviceListDel(pcidevs, virPCIDeviceGetAddress(pci));
                 continue;
             }
         } else {
-            virPCIDeviceListDel(pcidevs, pci);
+            virPCIDeviceListDel(pcidevs, virPCIDeviceGetAddress(pci));
             continue;
         }
 
@@ -2522,7 +2522,8 @@ virHostdevUpdateActiveNVMeDevices(virHostdevManagerPtr hostdev_mgr,
     while (lastGoodPCIIdx >= 0) {
         virPCIDevicePtr actual = virPCIDeviceListGet(pciDevices, i);
 
-        virPCIDeviceListDel(hostdev_mgr->activePCIHostdevs, actual);
+        virPCIDeviceListDel(hostdev_mgr->activePCIHostdevs,
+                            virPCIDeviceGetAddress(actual));
 
         lastGoodPCIIdx--;
     }
diff --git a/src/util/virpci.c b/src/util/virpci.c
index 332e681c43..76dfd71802 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -1336,7 +1336,7 @@ virPCIDeviceReattach(virPCIDevicePtr dev,
     /* Steal the dev from list inactiveDevs */
     if (inactiveDevs) {
         VIR_DEBUG("Removing PCI device %s from inactive list", dev->name);
-        virPCIDeviceListDel(inactiveDevs, dev);
+        virPCIDeviceListDel(inactiveDevs, &dev->address);
     }
 
     return 0;
@@ -1750,9 +1750,9 @@ virPCIDeviceListSteal(virPCIDeviceListPtr list,
 
 void
 virPCIDeviceListDel(virPCIDeviceListPtr list,
-                    virPCIDevicePtr dev)
+                    virPCIDeviceAddressPtr devAddr)
 {
-    virPCIDeviceFree(virPCIDeviceListSteal(list, &dev->address));
+    virPCIDeviceFree(virPCIDeviceListSteal(list, devAddr));
 }
 
 int
diff --git a/src/util/virpci.h b/src/util/virpci.h
index e3458a75fa..eb71eb4451 100644
--- a/src/util/virpci.h
+++ b/src/util/virpci.h
@@ -165,7 +165,7 @@ virPCIDevicePtr virPCIDeviceListSteal(virPCIDeviceListPtr list,
 virPCIDevicePtr virPCIDeviceListStealIndex(virPCIDeviceListPtr list,
                                            int idx);
 void virPCIDeviceListDel(virPCIDeviceListPtr list,
-                         virPCIDevicePtr dev);
+                         virPCIDeviceAddressPtr devAddr);
 virPCIDevicePtr virPCIDeviceListFind(virPCIDeviceListPtr list,
                                      virPCIDeviceAddressPtr devAddr);
 virPCIDevicePtr
-- 
2.26.2




More information about the libvir-list mailing list