diff options
Diffstat (limited to 'arch/x86/kernel/smpboot_32.c')
-rw-r--r-- | arch/x86/kernel/smpboot_32.c | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/arch/x86/kernel/smpboot_32.c b/arch/x86/kernel/smpboot_32.c index a21f25418b3e..ee826594aa03 100644 --- a/arch/x86/kernel/smpboot_32.c +++ b/arch/x86/kernel/smpboot_32.c | |||
@@ -73,41 +73,12 @@ EXPORT_PER_CPU_SYMBOL(x86_cpu_to_apicid); | |||
73 | 73 | ||
74 | u8 apicid_2_node[MAX_APICID]; | 74 | u8 apicid_2_node[MAX_APICID]; |
75 | 75 | ||
76 | static unsigned char *trampoline_base; | ||
77 | |||
78 | static void map_cpu_to_logical_apicid(void); | 76 | static void map_cpu_to_logical_apicid(void); |
79 | 77 | ||
80 | /* State of each CPU. */ | 78 | /* State of each CPU. */ |
81 | DEFINE_PER_CPU(int, cpu_state) = { 0 }; | 79 | DEFINE_PER_CPU(int, cpu_state) = { 0 }; |
82 | 80 | ||
83 | /* | 81 | /* |
84 | * Currently trivial. Write the real->protected mode | ||
85 | * bootstrap into the page concerned. The caller | ||
86 | * has made sure it's suitably aligned. | ||
87 | */ | ||
88 | |||
89 | static unsigned long __cpuinit setup_trampoline(void) | ||
90 | { | ||
91 | memcpy(trampoline_base, trampoline_data, trampoline_end - trampoline_data); | ||
92 | return virt_to_phys(trampoline_base); | ||
93 | } | ||
94 | |||
95 | /* | ||
96 | * We are called very early to get the low memory for the | ||
97 | * SMP bootup trampoline page. | ||
98 | */ | ||
99 | void __init smp_alloc_memory(void) | ||
100 | { | ||
101 | trampoline_base = alloc_bootmem_low_pages(PAGE_SIZE); | ||
102 | /* | ||
103 | * Has to be in very low memory so we can execute | ||
104 | * real-mode AP code. | ||
105 | */ | ||
106 | if (__pa(trampoline_base) >= 0x9F000) | ||
107 | BUG(); | ||
108 | } | ||
109 | |||
110 | /* | ||
111 | * The bootstrap kernel entry code has set these up. Save them for | 82 | * The bootstrap kernel entry code has set these up. Save them for |
112 | * a given CPU | 83 | * a given CPU |
113 | */ | 84 | */ |