From: Yu Watanabe Date: Tue, 28 Jun 2022 21:17:44 +0000 (+0900) Subject: virt: fix detection of Parallels virtualization X-Git-Tag: v252-rc1~754 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=840a49f3dcee9a5243f9a31ede2edaa0a3b89e26;p=thirdparty%2Fsystemd.git virt: fix detection of Parallels virtualization If Parallels virtualization is detected from DMI, then trust that over CPUID. Fixes issue caused by 28b1a3eac252d471de4fbb6f317353af30d68878. Fixes #23856. --- diff --git a/src/basic/virt.c b/src/basic/virt.c index c7ae2afc006..5cc1011ae8e 100644 --- a/src/basic/virt.c +++ b/src/basic/virt.c @@ -436,18 +436,22 @@ Virtualization detect_vm(void) { /* We have to use the correct order here: * - * → First, try to detect Oracle Virtualbox and Amazon EC2 Nitro, even if they use KVM, as well as Xen even if - * it cloaks as Microsoft Hyper-V. Attempt to detect uml at this stage also since it runs as a user-process - * nested inside other VMs. Also check for Xen now, because Xen PV mode does not override CPUID when nested - * inside another hypervisor. + * → First, try to detect Oracle Virtualbox, Amazon EC2 Nitro, and Parallels, even if they use KVM, + * as well as Xen even if it cloaks as Microsoft Hyper-V. Attempt to detect uml at this stage also + * since it runs as a user-process nested inside other VMs. Also check for Xen now, because Xen PV + * mode does not override CPUID when nested inside another hypervisor. * - * → Second, try to detect from CPUID, this will report KVM for whatever software is used even if info in DMI is - * overwritten. + * → Second, try to detect from CPUID, this will report KVM for whatever software is used even if + * info in DMI is overwritten. * * → Third, try to detect from DMI. */ dmi = detect_vm_dmi(); - if (IN_SET(dmi, VIRTUALIZATION_ORACLE, VIRTUALIZATION_XEN, VIRTUALIZATION_AMAZON)) { + if (IN_SET(dmi, + VIRTUALIZATION_ORACLE, + VIRTUALIZATION_XEN, + VIRTUALIZATION_AMAZON, + VIRTUALIZATION_PARALLELS)) { v = dmi; goto finish; }