On 06/19/14 13:05, Jincheng Miao wrote:
hostdev has mode "capabilities" for LXC, from
formatdomain.html:
"
Block / character devices from the host can be passed through to
the guest using the hostdev element.
This is only possible with container based virtualization.
since after 1.0.1 for LXC
"
So forbid capabilities mode hostdev if domain is not LXC.
The related bug is:
https://bugzilla.redhat.com/show_bug.cgi?id=1111044
Signed-off-by: Jincheng Miao <jmiao(a)redhat.com>
---
src/qemu/qemu_command.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 2caee66..338235a 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -8907,6 +8907,14 @@ qemuBuildCommandLine(virConnectPtr conn,
virDomainHostdevDefPtr hostdev = def->hostdevs[i];
char *devstr;
+ /* forbid capabilities mode hostdev in this type of hypervisor */
+ if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_CAPABILITIES) {
This apparently doesn't depend on the actual qemu binary nor the state
of the system.
For such checks we have the domain XML post parse callbacks which point
out the error at define time (as it's actually invalid XML from the
point of view of the qemu driver) and not when the user attempts to
start a VM
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Unsupported capabilities mode hostdev in %s"),
+ virDomainVirtTypeToString(def->virtType));
+ goto error;
+ }
+
if (hostdev->info->bootIndex) {
if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS ||
(hostdev->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI
&&
Peter