[libvirt] [PATCH 5/6] hostdev: Only rollback detach of managed devices on error

Andrea Bolognani abologna at redhat.com
Thu Dec 17 15:23:53 UTC 2015


Since we don't detach unmanaged devices before attaching them to a
domain, we shouldn't reattach them to rollback an error either.
---
 src/util/virhostdev.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/util/virhostdev.c b/src/util/virhostdev.c
index afacd4e..c8da8e5 100644
--- a/src/util/virhostdev.c
+++ b/src/util/virhostdev.c
@@ -711,12 +711,14 @@ virHostdevPreparePCIDevices(virHostdevManagerPtr hostdev_mgr,
     for (i = 0; i < virPCIDeviceListCount(pcidevs); i++) {
         virPCIDevicePtr dev = virPCIDeviceListGet(pcidevs, i);
 
-        /* NB: This doesn't actually re-bind to original driver, just
-         * unbinds from the stub driver
-         */
-        ignore_value(virPCIDeviceReattach(dev,
-                                          hostdev_mgr->activePCIHostdevs,
-                                          hostdev_mgr->inactivePCIHostdevs));
+        if (virPCIDeviceGetManaged(dev)) {
+            /* NB: This doesn't actually re-bind to original driver, just
+             * unbinds from the stub driver
+             */
+            ignore_value(virPCIDeviceReattach(dev,
+                                              hostdev_mgr->activePCIHostdevs,
+                                              hostdev_mgr->inactivePCIHostdevs));
+        }
     }
 
  cleanup:
-- 
2.5.0




More information about the libvir-list mailing list