aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/es7000_32.c
diff options
context:
space:
mode:
authorYinghai Lu <yinghai@kernel.org>2008-11-17 18:19:53 -0500
committerIngo Molnar <mingo@elte.hu>2008-11-17 18:27:24 -0500
commit54ac14a8e982ae6c7ac71ee2b0d0173b974509e2 (patch)
treefa716a60474c2e3592cd06afa52f381cdd2cece8 /arch/x86/kernel/es7000_32.c
parent569712b2b0970fa5b19673544d62ae661d04a220 (diff)
x86: fix wakeup_cpu with numaq/es7000, v2, fix
Impact: fix wakeup_secondary_cpu with hotplug We can not put that into x86_quirks, because that is __initdata. So try to move that to genapic, and add update_genapic in x86_quirks. later we even could use that stub to: 1. autodetect CONFIG_ES7000_CLUSTERED_APIC 2. more correct inquire_remote_apic with apic_verbosity setting. Signed-off-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/es7000_32.c')
-rw-r--r--arch/x86/kernel/es7000_32.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/x86/kernel/es7000_32.c b/arch/x86/kernel/es7000_32.c
index bed10dddf099..fb3bfe66fbe2 100644
--- a/arch/x86/kernel/es7000_32.c
+++ b/arch/x86/kernel/es7000_32.c
@@ -40,6 +40,7 @@
40#include <asm/smp.h> 40#include <asm/smp.h>
41#include <asm/apicdef.h> 41#include <asm/apicdef.h>
42#include <mach_mpparse.h> 42#include <mach_mpparse.h>
43#include <asm/genapic.h>
43#include <asm/setup.h> 44#include <asm/setup.h>
44 45
45/* 46/*
@@ -180,6 +181,13 @@ static int wakeup_secondary_cpu_via_mip(int cpu, unsigned long eip)
180 181
181 return 0; 182 return 0;
182} 183}
184
185static int __init es7000_update_genapic(void)
186{
187 genapic->wakeup_cpu = wakeup_secondary_cpu_via_mip;
188
189 return 0;
190}
183#endif 191#endif
184 192
185void __init 193void __init
@@ -197,8 +205,9 @@ setup_unisys(void)
197 else 205 else
198 es7000_plat = ES7000_CLASSIC; 206 es7000_plat = ES7000_CLASSIC;
199 ioapic_renumber_irq = es7000_rename_gsi; 207 ioapic_renumber_irq = es7000_rename_gsi;
208
200#ifdef CONFIG_ES7000_CLUSTERED_APIC 209#ifdef CONFIG_ES7000_CLUSTERED_APIC
201 x86_quirks->wakeup_secondary_cpu = wakeup_secondary_cpu_via_mip; 210 x86_quirks->update_genapic = es7000_update_genapic;
202#endif 211#endif
203} 212}
204 213