diff options
-rw-r--r-- | arch/x86_64/kernel/setup64.c | 18 | ||||
-rw-r--r-- | include/asm-generic/sections.h | 1 | ||||
-rw-r--r-- | include/asm-x86_64/desc.h | 1 | ||||
-rw-r--r-- | init/main.c | 3 |
4 files changed, 7 insertions, 16 deletions
diff --git a/arch/x86_64/kernel/setup64.c b/arch/x86_64/kernel/setup64.c index f2b9c6bc999..34082c1cc41 100644 --- a/arch/x86_64/kernel/setup64.c +++ b/arch/x86_64/kernel/setup64.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/string.h> | 12 | #include <linux/string.h> |
13 | #include <linux/bootmem.h> | 13 | #include <linux/bootmem.h> |
14 | #include <linux/bitops.h> | 14 | #include <linux/bitops.h> |
15 | #include <linux/module.h> | ||
15 | #include <asm/bootsetup.h> | 16 | #include <asm/bootsetup.h> |
16 | #include <asm/pda.h> | 17 | #include <asm/pda.h> |
17 | #include <asm/pgtable.h> | 18 | #include <asm/pgtable.h> |
@@ -22,10 +23,8 @@ | |||
22 | #include <asm/smp.h> | 23 | #include <asm/smp.h> |
23 | #include <asm/i387.h> | 24 | #include <asm/i387.h> |
24 | #include <asm/percpu.h> | 25 | #include <asm/percpu.h> |
25 | #include <asm/mtrr.h> | ||
26 | #include <asm/proto.h> | 26 | #include <asm/proto.h> |
27 | #include <asm/mman.h> | 27 | #include <asm/sections.h> |
28 | #include <asm/numa.h> | ||
29 | 28 | ||
30 | char x86_boot_params[BOOT_PARAM_SIZE] __initdata = {0,}; | 29 | char x86_boot_params[BOOT_PARAM_SIZE] __initdata = {0,}; |
31 | 30 | ||
@@ -33,11 +32,6 @@ cpumask_t cpu_initialized __cpuinitdata = CPU_MASK_NONE; | |||
33 | 32 | ||
34 | struct x8664_pda cpu_pda[NR_CPUS] __cacheline_aligned; | 33 | struct x8664_pda cpu_pda[NR_CPUS] __cacheline_aligned; |
35 | 34 | ||
36 | extern struct task_struct init_task; | ||
37 | |||
38 | extern unsigned char __per_cpu_start[], __per_cpu_end[]; | ||
39 | |||
40 | extern struct desc_ptr cpu_gdt_descr[]; | ||
41 | struct desc_ptr idt_descr = { 256 * 16, (unsigned long) idt_table }; | 35 | struct desc_ptr idt_descr = { 256 * 16, (unsigned long) idt_table }; |
42 | 36 | ||
43 | char boot_cpu_stack[IRQSTACKSIZE] __attribute__((section(".bss.page_aligned"))); | 37 | char boot_cpu_stack[IRQSTACKSIZE] __attribute__((section(".bss.page_aligned"))); |
@@ -101,7 +95,7 @@ void __init setup_per_cpu_areas(void) | |||
101 | #endif | 95 | #endif |
102 | 96 | ||
103 | for (i = 0; i < NR_CPUS; i++) { | 97 | for (i = 0; i < NR_CPUS; i++) { |
104 | unsigned char *ptr; | 98 | char *ptr; |
105 | 99 | ||
106 | if (!NODE_DATA(cpu_to_node(i))) { | 100 | if (!NODE_DATA(cpu_to_node(i))) { |
107 | printk("cpu with no node %d, num_online_nodes %d\n", | 101 | printk("cpu with no node %d, num_online_nodes %d\n", |
@@ -190,11 +184,7 @@ void __cpuinit check_efer(void) | |||
190 | */ | 184 | */ |
191 | void __cpuinit cpu_init (void) | 185 | void __cpuinit cpu_init (void) |
192 | { | 186 | { |
193 | #ifdef CONFIG_SMP | ||
194 | int cpu = stack_smp_processor_id(); | 187 | int cpu = stack_smp_processor_id(); |
195 | #else | ||
196 | int cpu = smp_processor_id(); | ||
197 | #endif | ||
198 | struct tss_struct *t = &per_cpu(init_tss, cpu); | 188 | struct tss_struct *t = &per_cpu(init_tss, cpu); |
199 | unsigned long v; | 189 | unsigned long v; |
200 | char *estacks = NULL; | 190 | char *estacks = NULL; |
@@ -214,7 +204,7 @@ void __cpuinit cpu_init (void) | |||
214 | 204 | ||
215 | printk("Initializing CPU#%d\n", cpu); | 205 | printk("Initializing CPU#%d\n", cpu); |
216 | 206 | ||
217 | clear_in_cr4(X86_CR4_VME|X86_CR4_PVI|X86_CR4_TSD|X86_CR4_DE); | 207 | clear_in_cr4(X86_CR4_VME|X86_CR4_PVI|X86_CR4_TSD|X86_CR4_DE); |
218 | 208 | ||
219 | /* | 209 | /* |
220 | * Initialize the per-CPU GDT with the boot GDT, | 210 | * Initialize the per-CPU GDT with the boot GDT, |
diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h index 195ccdc069e..450eae22c39 100644 --- a/include/asm-generic/sections.h +++ b/include/asm-generic/sections.h | |||
@@ -11,5 +11,6 @@ extern char _sinittext[], _einittext[]; | |||
11 | extern char _sextratext[] __attribute__((weak)); | 11 | extern char _sextratext[] __attribute__((weak)); |
12 | extern char _eextratext[] __attribute__((weak)); | 12 | extern char _eextratext[] __attribute__((weak)); |
13 | extern char _end[]; | 13 | extern char _end[]; |
14 | extern char __per_cpu_start[], __per_cpu_end[]; | ||
14 | 15 | ||
15 | #endif /* _ASM_GENERIC_SECTIONS_H_ */ | 16 | #endif /* _ASM_GENERIC_SECTIONS_H_ */ |
diff --git a/include/asm-x86_64/desc.h b/include/asm-x86_64/desc.h index 6aefb9c0280..c89b58bebee 100644 --- a/include/asm-x86_64/desc.h +++ b/include/asm-x86_64/desc.h | |||
@@ -75,6 +75,7 @@ struct desc_ptr { | |||
75 | */ | 75 | */ |
76 | extern struct desc_struct default_ldt[]; | 76 | extern struct desc_struct default_ldt[]; |
77 | extern struct gate_struct idt_table[]; | 77 | extern struct gate_struct idt_table[]; |
78 | extern struct desc_ptr cpu_gdt_descr[]; | ||
78 | 79 | ||
79 | static inline void _set_gate(void *adr, unsigned type, unsigned long func, unsigned dpl, unsigned ist) | 80 | static inline void _set_gate(void *adr, unsigned type, unsigned long func, unsigned dpl, unsigned ist) |
80 | { | 81 | { |
diff --git a/init/main.c b/init/main.c index b5e421e39ed..c9c311cf177 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -51,6 +51,7 @@ | |||
51 | #include <asm/io.h> | 51 | #include <asm/io.h> |
52 | #include <asm/bugs.h> | 52 | #include <asm/bugs.h> |
53 | #include <asm/setup.h> | 53 | #include <asm/setup.h> |
54 | #include <asm/sections.h> | ||
54 | 55 | ||
55 | /* | 56 | /* |
56 | * This is one of the first .c files built. Error out early | 57 | * This is one of the first .c files built. Error out early |
@@ -323,8 +324,6 @@ static void __init setup_per_cpu_areas(void) | |||
323 | { | 324 | { |
324 | unsigned long size, i; | 325 | unsigned long size, i; |
325 | char *ptr; | 326 | char *ptr; |
326 | /* Created by linker magic */ | ||
327 | extern char __per_cpu_start[], __per_cpu_end[]; | ||
328 | 327 | ||
329 | /* Copy section for each CPU (we discard the original) */ | 328 | /* Copy section for each CPU (we discard the original) */ |
330 | size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES); | 329 | size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES); |