diff options
Diffstat (limited to 'arch/x86/kernel/setup.c')
-rw-r--r-- | arch/x86/kernel/setup.c | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 531b55b8e81a..b520dae02bf4 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
@@ -57,12 +57,8 @@ | |||
57 | #include <linux/slab.h> | 57 | #include <linux/slab.h> |
58 | #include <linux/user.h> | 58 | #include <linux/user.h> |
59 | #include <linux/delay.h> | 59 | #include <linux/delay.h> |
60 | #include <linux/highmem.h> | ||
61 | 60 | ||
62 | #include <linux/kallsyms.h> | 61 | #include <linux/kallsyms.h> |
63 | #include <linux/edd.h> | ||
64 | #include <linux/iscsi_ibft.h> | ||
65 | #include <linux/kexec.h> | ||
66 | #include <linux/cpufreq.h> | 62 | #include <linux/cpufreq.h> |
67 | #include <linux/dma-mapping.h> | 63 | #include <linux/dma-mapping.h> |
68 | #include <linux/ctype.h> | 64 | #include <linux/ctype.h> |
@@ -96,7 +92,7 @@ | |||
96 | #include <asm/smp.h> | 92 | #include <asm/smp.h> |
97 | #include <asm/desc.h> | 93 | #include <asm/desc.h> |
98 | #include <asm/dma.h> | 94 | #include <asm/dma.h> |
99 | #include <asm/gart.h> | 95 | #include <asm/iommu.h> |
100 | #include <asm/mmu_context.h> | 96 | #include <asm/mmu_context.h> |
101 | #include <asm/proto.h> | 97 | #include <asm/proto.h> |
102 | 98 | ||
@@ -104,7 +100,6 @@ | |||
104 | #include <asm/paravirt.h> | 100 | #include <asm/paravirt.h> |
105 | 101 | ||
106 | #include <asm/percpu.h> | 102 | #include <asm/percpu.h> |
107 | #include <asm/sections.h> | ||
108 | #include <asm/topology.h> | 103 | #include <asm/topology.h> |
109 | #include <asm/apicdef.h> | 104 | #include <asm/apicdef.h> |
110 | #ifdef CONFIG_X86_64 | 105 | #ifdef CONFIG_X86_64 |
@@ -579,6 +574,10 @@ static int __init setup_elfcorehdr(char *arg) | |||
579 | early_param("elfcorehdr", setup_elfcorehdr); | 574 | early_param("elfcorehdr", setup_elfcorehdr); |
580 | #endif | 575 | #endif |
581 | 576 | ||
577 | static struct x86_quirks default_x86_quirks __initdata; | ||
578 | |||
579 | struct x86_quirks *x86_quirks __initdata = &default_x86_quirks; | ||
580 | |||
582 | /* | 581 | /* |
583 | * Determine if we were loaded by an EFI loader. If so, then we have also been | 582 | * Determine if we were loaded by an EFI loader. If so, then we have also been |
584 | * passed the efi memmap, systab, etc., so we should use these data structures | 583 | * passed the efi memmap, systab, etc., so we should use these data structures |
@@ -598,11 +597,11 @@ void __init setup_arch(char **cmdline_p) | |||
598 | memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data)); | 597 | memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data)); |
599 | visws_early_detect(); | 598 | visws_early_detect(); |
600 | pre_setup_arch_hook(); | 599 | pre_setup_arch_hook(); |
601 | early_cpu_init(); | ||
602 | #else | 600 | #else |
603 | printk(KERN_INFO "Command line: %s\n", boot_command_line); | 601 | printk(KERN_INFO "Command line: %s\n", boot_command_line); |
604 | #endif | 602 | #endif |
605 | 603 | ||
604 | early_cpu_init(); | ||
606 | early_ioremap_init(); | 605 | early_ioremap_init(); |
607 | 606 | ||
608 | ROOT_DEV = old_decode_dev(boot_params.hdr.root_dev); | 607 | ROOT_DEV = old_decode_dev(boot_params.hdr.root_dev); |
@@ -666,9 +665,6 @@ void __init setup_arch(char **cmdline_p) | |||
666 | bss_resource.start = virt_to_phys(&__bss_start); | 665 | bss_resource.start = virt_to_phys(&__bss_start); |
667 | bss_resource.end = virt_to_phys(&__bss_stop)-1; | 666 | bss_resource.end = virt_to_phys(&__bss_stop)-1; |
668 | 667 | ||
669 | #ifdef CONFIG_X86_64 | ||
670 | early_cpu_init(); | ||
671 | #endif | ||
672 | strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE); | 668 | strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE); |
673 | *cmdline_p = command_line; | 669 | *cmdline_p = command_line; |
674 | 670 | ||
@@ -681,7 +677,7 @@ void __init setup_arch(char **cmdline_p) | |||
681 | #ifdef CONFIG_X86_LOCAL_APIC | 677 | #ifdef CONFIG_X86_LOCAL_APIC |
682 | disable_apic = 1; | 678 | disable_apic = 1; |
683 | #endif | 679 | #endif |
684 | clear_cpu_cap(&boot_cpu_data, X86_FEATURE_APIC); | 680 | setup_clear_cpu_cap(X86_FEATURE_APIC); |
685 | } | 681 | } |
686 | 682 | ||
687 | #ifdef CONFIG_PCI | 683 | #ifdef CONFIG_PCI |
@@ -824,7 +820,10 @@ void __init setup_arch(char **cmdline_p) | |||
824 | vmi_init(); | 820 | vmi_init(); |
825 | #endif | 821 | #endif |
826 | 822 | ||
823 | paravirt_pagetable_setup_start(swapper_pg_dir); | ||
827 | paging_init(); | 824 | paging_init(); |
825 | paravirt_pagetable_setup_done(swapper_pg_dir); | ||
826 | paravirt_post_allocator_init(); | ||
828 | 827 | ||
829 | #ifdef CONFIG_X86_64 | 828 | #ifdef CONFIG_X86_64 |
830 | map_vsyscall(); | 829 | map_vsyscall(); |
@@ -854,14 +853,6 @@ void __init setup_arch(char **cmdline_p) | |||
854 | init_cpu_to_node(); | 853 | init_cpu_to_node(); |
855 | #endif | 854 | #endif |
856 | 855 | ||
857 | #ifdef CONFIG_X86_NUMAQ | ||
858 | /* | ||
859 | * need to check online nodes num, call it | ||
860 | * here before time_init/tsc_init | ||
861 | */ | ||
862 | numaq_tsc_disable(); | ||
863 | #endif | ||
864 | |||
865 | init_apic_mappings(); | 856 | init_apic_mappings(); |
866 | ioapic_init_mappings(); | 857 | ioapic_init_mappings(); |
867 | 858 | ||