From 6da6bf2f30b4d8a8004a026e7762d3aa086fa58b Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Fri, 4 Mar 2016 16:16:16 +0100 Subject: [PATCH] hostdev: Stop early if unmanaged devices have not been detached Unmanaged devices, as the name suggests, are not detached automatically from the host by libvirt before being attached to a guest: it's the user's responsability to detach them manually beforehand. If that preliminary step has not been performed, the attach operation can't complete successfully. Instead of relying on the lower layers to error out with cryptic messages such as error: Failed to attach device from /tmp/hostdev.xml error: Path '/dev/vfio/12' is not accessible: No such file or directory prevent the situation altogether and provide the user with a more useful error message. --- src/util/virhostdev.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/util/virhostdev.c b/src/util/virhostdev.c index e6b9c1ba93..99e17f4b37 100644 --- a/src/util/virhostdev.c +++ b/src/util/virhostdev.c @@ -619,6 +619,12 @@ virHostdevPreparePCIDevices(virHostdevManagerPtr mgr, virPCIDeviceGetName(pci)); if (virPCIDeviceListAddCopy(mgr->inactivePCIHostdevs, pci) < 0) goto reattachdevs; + } else { + virReportError(VIR_ERR_OPERATION_INVALID, + _("Unmanaged PCI device %s must be manually " + "detached from the host"), + virPCIDeviceGetName(pci)); + goto reattachdevs; } } }