mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-05 09:17:44 +03:00
virt: fix detection of Parallels virtualization
If Parallels virtualization is detected from DMI, then trust that over CPUID. Fixes issue caused by28b1a3eac2
. Fixes #23856. (cherry picked from commit840a49f3dc
) (cherry picked from commit0c36233a84
)
This commit is contained in:
parent
2e54ed4043
commit
a53e5e0e2f
@ -432,18 +432,22 @@ int 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)) {
|
||||
r = dmi;
|
||||
goto finish;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user