aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/setup.c')
-rw-r--r--arch/x86/kernel/setup.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index de2cab132844..02643cc3bf26 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -672,6 +672,19 @@ static struct dmi_system_id __initdata bad_bios_dmi_table[] = {
672 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies"), 672 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies"),
673 }, 673 },
674 }, 674 },
675 {
676 /*
677 * AMI BIOS with low memory corruption was found on Intel DG45ID board.
678 * It hase different DMI_BIOS_VENDOR = "Intel Corp.", for now we will
679 * match only DMI_BOARD_NAME and see if there is more bad products
680 * with this vendor.
681 */
682 .callback = dmi_low_memory_corruption,
683 .ident = "AMI BIOS",
684 .matches = {
685 DMI_MATCH(DMI_BOARD_NAME, "DG45ID"),
686 },
687 },
675#endif 688#endif
676 {} 689 {}
677}; 690};
@@ -698,6 +711,11 @@ void __init setup_arch(char **cmdline_p)
698 printk(KERN_INFO "Command line: %s\n", boot_command_line); 711 printk(KERN_INFO "Command line: %s\n", boot_command_line);
699#endif 712#endif
700 713
714 strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
715 *cmdline_p = command_line;
716
717 parse_early_param();
718
701 /* VMI may relocate the fixmap; do this before touching ioremap area */ 719 /* VMI may relocate the fixmap; do this before touching ioremap area */
702 vmi_init(); 720 vmi_init();
703 721
@@ -780,11 +798,6 @@ void __init setup_arch(char **cmdline_p)
780#endif 798#endif
781#endif 799#endif
782 800
783 strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
784 *cmdline_p = command_line;
785
786 parse_early_param();
787
788#ifdef CONFIG_X86_64 801#ifdef CONFIG_X86_64
789 check_efer(); 802 check_efer();
790#endif 803#endif