The branch main has been updated by kevans:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=f7a884cb017f6618ae872f8d52e80a147daf3f59

commit f7a884cb017f6618ae872f8d52e80a147daf3f59
Author:     Kyle Evans <kev...@freebsd.org>
AuthorDate: 2023-03-16 19:26:28 +0000
Commit:     Kyle Evans <kev...@freebsd.org>
CommitDate: 2023-03-17 05:54:32 +0000

    x86: gate smbios hypervisor identification behind vm_guest
    
    cpuid detection may have picked up a more specific guest type already,
    and a follow-up check of smbios vendor/product may erroneously blow
    away the previously detected type.
    
    This reportedly fixes the boot under Hyper-V, which advertises an
    smbios.system.product of "Virtual Machine."
    
    PR:             270239
    Reviewed by:    imp, kib (both earlier version, same concept)
    Fixes:  2fee87562948 ("abstract out the vm detection via smbios..")
    Differential Revision:  https://reviews.freebsd.org/D39140
---
 sys/dev/smbios/smbios_subr.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/sys/dev/smbios/smbios_subr.c b/sys/dev/smbios/smbios_subr.c
index c28bf0e4983f..4e30751cd716 100644
--- a/sys/dev/smbios/smbios_subr.c
+++ b/sys/dev/smbios/smbios_subr.c
@@ -69,6 +69,14 @@ identify_hypervisor_smbios(void)
        char *p;
        int i;
 
+       /*
+        * Some platforms, e.g., amd64, have other ways of detecting what kind
+        * of hypervisor we may be running under.  Make sure we don't clobber a
+        * more specific vm_guest that's been previously detected.
+        */
+       if (vm_guest != VM_GUEST_NO && vm_guest != VM_GUEST_VM)
+               return;
+
        /*
         * XXX: Some of these entries may not be needed since they were
         * added to FreeBSD before the checks above.

Reply via email to