X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fbasic%2Fvirt.c;h=885d9261b79d44a993e2887b3221eec8ca14a8e9;hp=73bf0d7cfecabbc288877c8e3e9b38d0cb0436db;hb=5f2c0c299aadb2d24d94597ccc61179f000e1583;hpb=5d945323d594ac23a43d9936c7e2f5266776a7b1 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)