char *ret = NULL;
virQEMUDriverPtr driver = conn->privateData;
virQEMUCapsPtr qemuCaps = NULL;
- int virttype; /* virDomainVirtType */
+ int virttype = VIR_DOMAIN_VIRT_NONE;
virDomainCapsPtr domCaps = NULL;
int arch = virArchFromHost(); /* virArch */
virQEMUDriverConfigPtr cfg = NULL;
if (!(caps = virQEMUDriverGetCapabilities(driver, false)))
goto cleanup;
- if (qemuHostdevHostSupportsPassthroughLegacy() ||
- qemuHostdevHostSupportsPassthroughVFIO())
- virttype = VIR_DOMAIN_VIRT_KVM;
- else
- virttype = VIR_DOMAIN_VIRT_QEMU;
-
if (virttype_str &&
(virttype = virDomainVirtTypeFromString(virttype_str)) < 0) {
virReportError(VIR_ERR_INVALID_ARG,
machine = virQEMUCapsGetDefaultMachine(qemuCaps);
}
+ if (virttype == VIR_DOMAIN_VIRT_NONE) {
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM))
+ virttype = VIR_DOMAIN_VIRT_KVM;
+ else
+ virttype = VIR_DOMAIN_VIRT_QEMU;
+ }
+
if (!(domCaps = virDomainCapsNew(emulatorbin, machine, arch, virttype)))
goto cleanup;