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/setup.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/setup.c')
-rw-r--r-- | arch/x86/kernel/setup.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 0fa6790c1dd3..c366e891e10b 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
@@ -583,7 +583,18 @@ static int __init setup_elfcorehdr(char *arg) | |||
583 | early_param("elfcorehdr", setup_elfcorehdr); | 583 | early_param("elfcorehdr", setup_elfcorehdr); |
584 | #endif | 584 | #endif |
585 | 585 | ||
586 | static struct x86_quirks default_x86_quirks __initdata; | 586 | static int __init default_update_genapic(void) |
587 | { | ||
588 | #if defined(CONFIG_X86_GENERICARCH) || defined(CONFIG_X86_64) | ||
589 | genapic->wakeup_cpu = wakeup_secondary_cpu_via_nmi; | ||
590 | #endif | ||
591 | |||
592 | return 0; | ||
593 | } | ||
594 | |||
595 | static struct x86_quirks default_x86_quirks __initdata = { | ||
596 | .update_genapic = default_update_genapic, | ||
597 | }; | ||
587 | 598 | ||
588 | struct x86_quirks *x86_quirks __initdata = &default_x86_quirks; | 599 | struct x86_quirks *x86_quirks __initdata = &default_x86_quirks; |
589 | 600 | ||