diff options
-rw-r--r-- | arch/x86/include/asm/genapic.h | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/arch/x86/include/asm/genapic.h b/arch/x86/include/asm/genapic.h index 7df1b48fa35a..19a5193e9651 100644 --- a/arch/x86/include/asm/genapic.h +++ b/arch/x86/include/asm/genapic.h | |||
@@ -3,6 +3,9 @@ | |||
3 | 3 | ||
4 | #include <linux/cpumask.h> | 4 | #include <linux/cpumask.h> |
5 | 5 | ||
6 | #include <asm/mpspec.h> | ||
7 | #include <asm/atomic.h> | ||
8 | |||
6 | /* | 9 | /* |
7 | * Copyright 2004 James Cleverdon, IBM. | 10 | * Copyright 2004 James Cleverdon, IBM. |
8 | * Subject to the GNU Public License, v.2 | 11 | * Subject to the GNU Public License, v.2 |
@@ -13,7 +16,6 @@ | |||
13 | * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and | 16 | * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and |
14 | * James Cleverdon. | 17 | * James Cleverdon. |
15 | */ | 18 | */ |
16 | |||
17 | struct genapic { | 19 | struct genapic { |
18 | char *name; | 20 | char *name; |
19 | 21 | ||
@@ -85,6 +87,7 @@ struct genapic { | |||
85 | 87 | ||
86 | int trampoline_phys_low; | 88 | int trampoline_phys_low; |
87 | int trampoline_phys_high; | 89 | int trampoline_phys_high; |
90 | |||
88 | void (*wait_for_init_deassert)(atomic_t *deassert); | 91 | void (*wait_for_init_deassert)(atomic_t *deassert); |
89 | void (*smp_callin_clear_local_apic)(void); | 92 | void (*smp_callin_clear_local_apic)(void); |
90 | void (*store_NMI_vector)(unsigned short *high, unsigned short *low); | 93 | void (*store_NMI_vector)(unsigned short *high, unsigned short *low); |
@@ -92,10 +95,9 @@ struct genapic { | |||
92 | void (*inquire_remote_apic)(int apicid); | 95 | void (*inquire_remote_apic)(int apicid); |
93 | }; | 96 | }; |
94 | 97 | ||
95 | #ifdef CONFIG_X86_32 | 98 | extern struct genapic *genapic; |
96 | 99 | ||
97 | #include <asm/mpspec.h> | 100 | #ifdef CONFIG_X86_32 |
98 | #include <asm/atomic.h> | ||
99 | 101 | ||
100 | #define APICFUNC(x) .x = x, | 102 | #define APICFUNC(x) .x = x, |
101 | 103 | ||
@@ -143,8 +145,8 @@ struct genapic { | |||
143 | IPIFUNC(send_IPI_all) \ | 145 | IPIFUNC(send_IPI_all) \ |
144 | APICFUNC(enable_apic_mode) \ | 146 | APICFUNC(enable_apic_mode) \ |
145 | APICFUNC(phys_pkg_id) \ | 147 | APICFUNC(phys_pkg_id) \ |
146 | .trampoline_phys_low = TRAMPOLINE_PHYS_LOW, \ | 148 | .trampoline_phys_low = TRAMPOLINE_PHYS_LOW, \ |
147 | .trampoline_phys_high = TRAMPOLINE_PHYS_HIGH, \ | 149 | .trampoline_phys_high = TRAMPOLINE_PHYS_HIGH, \ |
148 | APICFUNC(wait_for_init_deassert) \ | 150 | APICFUNC(wait_for_init_deassert) \ |
149 | APICFUNC(smp_callin_clear_local_apic) \ | 151 | APICFUNC(smp_callin_clear_local_apic) \ |
150 | APICFUNC(store_NMI_vector) \ | 152 | APICFUNC(store_NMI_vector) \ |
@@ -152,13 +154,10 @@ struct genapic { | |||
152 | APICFUNC(inquire_remote_apic) \ | 154 | APICFUNC(inquire_remote_apic) \ |
153 | } | 155 | } |
154 | 156 | ||
155 | extern struct genapic *genapic; | ||
156 | extern void es7000_update_genapic_to_cluster(void); | 157 | extern void es7000_update_genapic_to_cluster(void); |
157 | 158 | ||
158 | #else /* CONFIG_X86_64: */ | 159 | #else /* CONFIG_X86_64: */ |
159 | 160 | ||
160 | extern struct genapic *genapic; | ||
161 | |||
162 | extern struct genapic apic_flat; | 161 | extern struct genapic apic_flat; |
163 | extern struct genapic apic_physflat; | 162 | extern struct genapic apic_physflat; |
164 | extern struct genapic apic_x2apic_cluster; | 163 | extern struct genapic apic_x2apic_cluster; |