]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
detect-virt: bare-metal GCE only for x86 and i386
authorkeentux <val.lefebvre@proton.me>
Wed, 13 Aug 2025 07:52:12 +0000 (09:52 +0200)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 13 Aug 2025 12:16:19 +0000 (21:16 +0900)
From the previous changes, bare-metal support has been added by using
the `detect_vm_cpuid()` which works only for x86_64 and i386 architecture.
Do not use this change for other architectures to avoid wrong result of
the detect-virt tool.

Follow-up for fb71571d3a4efddeb44f02939304be9007301974.
Fixes #38125.

src/basic/virt.c

index 226d0b53f8df0c7911a67c56451fabd249ef109f..1a0156159d0f643d5b07832a96d53f7a17ec1213 100644 (file)
@@ -475,6 +475,13 @@ Virtualization detect_vm(void) {
                    VIRTUALIZATION_ORACLE,
                    VIRTUALIZATION_XEN,
                    VIRTUALIZATION_AMAZON,
+                   /* Unable to distinguish a GCE machine from a VM to bare-metal
+                    * for non-x86 architectures due to its necessity for cpuid
+                    * detection, which functions solely on x86 platforms. Report
+                    * as a VM for other architectures. */
+#if !defined(__i386__) && !defined(__x86_64__)
+                   VIRTUALIZATION_GOOGLE,
+#endif
                    VIRTUALIZATION_PARALLELS)) {
                 v = dmi;
                 goto finish;