summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Jones <drjones@redhat.com>2015-11-03 14:49:38 -0600
committerSven Eden <yamakuzure@gmx.net>2017-04-26 12:58:55 +0200
commit5f2c0c299aadb2d24d94597ccc61179f000e1583 (patch)
tree07607279b0cf88d02c37d265b7716e16299260d3
parent5d945323d594ac23a43d9936c7e2f5266776a7b1 (diff)
detect-virt: detect in best-heuristic order
afaict, this will fix a regression caused by commit 75f86906c5. Where we used to report "kvm" before that patch, without this patch, we would only report "qemu". The reason is because cpuid detection must come before dmi detection. Also, both can safely come before other xen heuristics. Untested.
-rw-r--r--src/basic/virt.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/basic/virt.c b/src/basic/virt.c
index 73bf0d7cf..885d9261b 100644
--- a/src/basic/virt.c
+++ b/src/basic/virt.c
@@ -263,12 +263,7 @@ int detect_vm(void) {
if (cached_found >= 0)
return cached_found;
- /* Try xen capabilities file first, if not found try
- * high-level hypervisor sysfs file:
- *
- * https://bugs.freedesktop.org/show_bug.cgi?id=77271 */
-
- r = detect_vm_xen();
+ r = detect_vm_cpuid();
if (r < 0)
return r;
if (r != VIRTUALIZATION_NONE)
@@ -280,7 +275,14 @@ int detect_vm(void) {
if (r != VIRTUALIZATION_NONE)
goto finish;
- r = detect_vm_cpuid();
+ /* x86 xen will most likely be detected by cpuid. If not (most likely
+ * because we're not an x86 guest), then we should try the xen capabilities
+ * file next. If that's not found, then we check for the high-level
+ * hypervisor sysfs file:
+ *
+ * https://bugs.freedesktop.org/show_bug.cgi?id=77271 */
+
+ r = detect_vm_xen();
if (r < 0)
return r;
if (r != VIRTUALIZATION_NONE)