diff options
author | Yinghai Lu <yinghai@kernel.org> | 2008-11-17 18:19:53 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-11-17 18:27:24 -0500 |
commit | 54ac14a8e982ae6c7ac71ee2b0d0173b974509e2 (patch) | |
tree | fa716a60474c2e3592cd06afa52f381cdd2cece8 /arch/x86/kernel/es7000_32.c | |
parent | 569712b2b0970fa5b19673544d62ae661d04a220 (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.c | 11 |
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 | |||
185 | static 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 | ||
185 | void __init | 193 | void __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 | ||