aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/include/asm/genapic.h17
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
17struct genapic { 19struct 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 98extern 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
155extern struct genapic *genapic;
156extern void es7000_update_genapic_to_cluster(void); 157extern void es7000_update_genapic_to_cluster(void);
157 158
158#else /* CONFIG_X86_64: */ 159#else /* CONFIG_X86_64: */
159 160
160extern struct genapic *genapic;
161
162extern struct genapic apic_flat; 161extern struct genapic apic_flat;
163extern struct genapic apic_physflat; 162extern struct genapic apic_physflat;
164extern struct genapic apic_x2apic_cluster; 163extern struct genapic apic_x2apic_cluster;