From 3e14d02500cd213a4a364961125c4e39423b51e5 Mon Sep 17 00:00:00 2001 From: keentux Date: Wed, 13 Aug 2025 09:52:12 +0200 Subject: [PATCH] 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. --- src/basic/virt.c | 7 +++++++ 1 file changed, 7 insertions(+) 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; -- 2.47.3