--- a/arch/x86/kernel/setup.c 2009-02-08 15:37:27.000000000 -0500 +++ b/arch/x86/kernel/setup.c 2009-03-01 02:27:45.000000000 -0500 @@ -770,16 +770,6 @@ void __init setup_arch(char **cmdline_p) finish_e820_parsing(); - dmi_scan_machine(); - - dmi_check_system(bad_bios_dmi_table); - - /* - * VMware detection requires dmi to be available, so this - * needs to be done after dmi_scan_machine, for the BP. - */ - init_hypervisor(&boot_cpu_data); - #ifdef CONFIG_X86_32 probe_roms(); #endif @@ -792,6 +782,16 @@ void __init setup_arch(char **cmdline_p) if (efi_enabled) efi_init(); + dmi_scan_machine(); + + dmi_check_system(bad_bios_dmi_table); + + /* + * VMware detection requires dmi to be available, so this + * needs to be done after dmi_scan_machine, for the BP. + */ + init_hypervisor(&boot_cpu_data); + #ifdef CONFIG_X86_32 if (ppro_with_ram_bug()) { e820_update_range(0x70000000ULL, 0x40000ULL, E820_RAM,