aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/apic/probe_32.c
diff options
context:
space:
mode:
authorYinghai Lu <yinghai@kernel.org>2009-02-25 23:50:49 -0500
committerIngo Molnar <mingo@elte.hu>2009-02-26 00:32:25 -0500
commit2b6163bf5772644068694583816fa41e8474239f (patch)
treeb854e9070254ad2942901941b67e8a56d61f7f91 /arch/x86/kernel/apic/probe_32.c
parentecc25fbd6b9e07b33895c61ddf84006b00f55d99 (diff)
x86: remove update_apic from x86_quirks
Impact: cleanup x86_quirks->update_apic() calling looks crazy. so try to remove it: 1. every apic take wakeup_cpu member directly 2. separate es7000_apic to es7000_apic_cluster 3. use uv_wakeup_cpu directly Signed-off-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/apic/probe_32.c')
-rw-r--r--arch/x86/kernel/apic/probe_32.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/arch/x86/kernel/apic/probe_32.c b/arch/x86/kernel/apic/probe_32.c
index 3a730fa574bb..13c6fc7dff99 100644
--- a/arch/x86/kernel/apic/probe_32.c
+++ b/arch/x86/kernel/apic/probe_32.c
@@ -138,7 +138,7 @@ struct apic apic_default = {
138 .send_IPI_all = default_send_IPI_all, 138 .send_IPI_all = default_send_IPI_all,
139 .send_IPI_self = default_send_IPI_self, 139 .send_IPI_self = default_send_IPI_self,
140 140
141 .wakeup_cpu = NULL, 141 .wakeup_cpu = wakeup_secondary_cpu_via_init,
142 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW, 142 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
143 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, 143 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
144 144
@@ -159,6 +159,7 @@ extern struct apic apic_numaq;
159extern struct apic apic_summit; 159extern struct apic apic_summit;
160extern struct apic apic_bigsmp; 160extern struct apic apic_bigsmp;
161extern struct apic apic_es7000; 161extern struct apic apic_es7000;
162extern struct apic apic_es7000_cluster;
162extern struct apic apic_default; 163extern struct apic apic_default;
163 164
164struct apic *apic = &apic_default; 165struct apic *apic = &apic_default;
@@ -176,6 +177,7 @@ static struct apic *apic_probe[] __initdata = {
176#endif 177#endif
177#ifdef CONFIG_X86_ES7000 178#ifdef CONFIG_X86_ES7000
178 &apic_es7000, 179 &apic_es7000,
180 &apic_es7000_cluster,
179#endif 181#endif
180 &apic_default, /* must be last */ 182 &apic_default, /* must be last */
181 NULL, 183 NULL,
@@ -197,9 +199,6 @@ static int __init parse_apic(char *arg)
197 } 199 }
198 } 200 }
199 201
200 if (x86_quirks->update_apic)
201 x86_quirks->update_apic();
202
203 /* Parsed again by __setup for debug/verbose */ 202 /* Parsed again by __setup for debug/verbose */
204 return 0; 203 return 0;
205} 204}
@@ -218,8 +217,6 @@ void __init generic_bigsmp_probe(void)
218 if (!cmdline_apic && apic == &apic_default) { 217 if (!cmdline_apic && apic == &apic_default) {
219 if (apic_bigsmp.probe()) { 218 if (apic_bigsmp.probe()) {
220 apic = &apic_bigsmp; 219 apic = &apic_bigsmp;
221 if (x86_quirks->update_apic)
222 x86_quirks->update_apic();
223 printk(KERN_INFO "Overriding APIC driver with %s\n", 220 printk(KERN_INFO "Overriding APIC driver with %s\n",
224 apic->name); 221 apic->name);
225 } 222 }
@@ -240,9 +237,6 @@ void __init generic_apic_probe(void)
240 /* Not visible without early console */ 237 /* Not visible without early console */
241 if (!apic_probe[i]) 238 if (!apic_probe[i])
242 panic("Didn't find an APIC driver"); 239 panic("Didn't find an APIC driver");
243
244 if (x86_quirks->update_apic)
245 x86_quirks->update_apic();
246 } 240 }
247 printk(KERN_INFO "Using APIC driver %s\n", apic->name); 241 printk(KERN_INFO "Using APIC driver %s\n", apic->name);
248} 242}
@@ -262,8 +256,6 @@ generic_mps_oem_check(struct mpc_table *mpc, char *oem, char *productid)
262 256
263 if (!cmdline_apic) { 257 if (!cmdline_apic) {
264 apic = apic_probe[i]; 258 apic = apic_probe[i];
265 if (x86_quirks->update_apic)
266 x86_quirks->update_apic();
267 printk(KERN_INFO "Switched to APIC driver `%s'.\n", 259 printk(KERN_INFO "Switched to APIC driver `%s'.\n",
268 apic->name); 260 apic->name);
269 } 261 }
@@ -284,8 +276,6 @@ int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
284 276
285 if (!cmdline_apic) { 277 if (!cmdline_apic) {
286 apic = apic_probe[i]; 278 apic = apic_probe[i];
287 if (x86_quirks->update_apic)
288 x86_quirks->update_apic();
289 printk(KERN_INFO "Switched to APIC driver `%s'.\n", 279 printk(KERN_INFO "Switched to APIC driver `%s'.\n",
290 apic->name); 280 apic->name);
291 } 281 }