From: keentux Date: Wed, 13 Aug 2025 07:52:12 +0000 (+0200) Subject: detect-virt: bare-metal GCE only for x86 and i386 X-Git-Tag: v258-rc3~47 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3e14d02500cd213a4a364961125c4e39423b51e5;p=thirdparty%2Fsystemd.git detect-virt: bare-metal GCE only for x86 and i386 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. --- diff --git a/src/basic/virt.c b/src/basic/virt.c index 226d0b53f8d..1a0156159d0 100644 --- a/src/basic/virt.c +++ b/src/basic/virt.c @@ -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;