On 12/17/2015 10:23 AM, Andrea Bolognani wrote:
Since we don't detach unmanaged devices before attaching them to a
domain, we shouldn't reattach them to rollback an error either.

Yes, definitely ACK. This patch makes the error cleanup code exactly mirror the code it is cleaning up from.

---
  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:

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

Reply via email to