diff options
author | Ingo Molnar <mingo@elte.hu> | 2007-05-02 13:27:04 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2007-05-02 13:27:04 -0400 |
commit | 3c43f03908de98fa8f7a9e8fc9411ebf4c2de298 (patch) | |
tree | 3e2c78fc91f29dfdfd29970e70982f0386863d17 /arch/x86_64/kernel/genapic.c | |
parent | 424df390101f9dfe015f0633aaec696c159b37a8 (diff) |
[PATCH] x86: default to physical mode on hotplug CPU kernels
Default to physical mode on hotplug CPU kernels. Furher simplify and clean up
the APIC initialization code.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Andi Kleen <ak@suse.de>
Cc: "Li, Shaohua" <shaohua.li@intel.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Diffstat (limited to 'arch/x86_64/kernel/genapic.c')
-rw-r--r-- | arch/x86_64/kernel/genapic.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/arch/x86_64/kernel/genapic.c b/arch/x86_64/kernel/genapic.c index 025f26ebb8d7..c08650a427e2 100644 --- a/arch/x86_64/kernel/genapic.c +++ b/arch/x86_64/kernel/genapic.c | |||
@@ -35,11 +35,8 @@ struct genapic __read_mostly *genapic = &apic_flat; | |||
35 | /* | 35 | /* |
36 | * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode. | 36 | * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode. |
37 | */ | 37 | */ |
38 | void __init clustered_apic_check(void) | 38 | void __init setup_apic_routing(void) |
39 | { | 39 | { |
40 | unsigned int i, max_apic = 0; | ||
41 | u8 id; | ||
42 | |||
43 | #ifdef CONFIG_ACPI | 40 | #ifdef CONFIG_ACPI |
44 | /* | 41 | /* |
45 | * Quirk: some x86_64 machines can only use physical APIC mode | 42 | * Quirk: some x86_64 machines can only use physical APIC mode |
@@ -49,17 +46,10 @@ void __init clustered_apic_check(void) | |||
49 | if (acpi_gbl_FADT.header.revision > FADT2_REVISION_ID && | 46 | if (acpi_gbl_FADT.header.revision > FADT2_REVISION_ID && |
50 | (acpi_gbl_FADT.flags & ACPI_FADT_APIC_PHYSICAL)) | 47 | (acpi_gbl_FADT.flags & ACPI_FADT_APIC_PHYSICAL)) |
51 | genapic = &apic_physflat; | 48 | genapic = &apic_physflat; |
49 | else | ||
52 | #endif | 50 | #endif |
53 | 51 | ||
54 | for (i = 0; i < NR_CPUS; i++) { | 52 | if (cpus_weight(cpu_possible_map) <= 8) |
55 | id = bios_cpu_apicid[i]; | ||
56 | if (id == BAD_APICID) | ||
57 | continue; | ||
58 | if (id > max_apic) | ||
59 | max_apic = id; | ||
60 | } | ||
61 | |||
62 | if (max_apic < 8) | ||
63 | genapic = &apic_flat; | 53 | genapic = &apic_flat; |
64 | else | 54 | else |
65 | genapic = &apic_physflat; | 55 | genapic = &apic_physflat; |