Skip to content

Commit

Permalink
[PATCH] x86-64: Use largest APIC number, not number of CPUs to decide…
Browse files Browse the repository at this point in the history
… on physflat mode

Handles case where BIOS gives CPUs very large APIC numbers correctly.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Andi Kleen authored and Linus Torvalds committed Sep 12, 2005
1 parent 5a40b7c commit 7055646
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions arch/x86_64/kernel/genapic.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ void __init clustered_apic_check(void)
u8 clusters, max_cluster;
u8 id;
u8 cluster_cnt[NUM_APIC_CLUSTERS];
int num_cpus = 0;
int max_apic = 0;

#if defined(CONFIG_ACPI)
/*
Expand All @@ -64,7 +64,8 @@ void __init clustered_apic_check(void)
id = bios_cpu_apicid[i];
if (id == BAD_APICID)
continue;
num_cpus++;
if (id > max_apic)
max_apic = id;
cluster_cnt[APIC_CLUSTERID(id)]++;
}

Expand All @@ -79,7 +80,7 @@ void __init clustered_apic_check(void)
we have ACPI platform support for CPU hotplug
we should detect hotplug capablity from ACPI tables and
only do this when really needed. -AK */
if (num_cpus <= 8)
if (max_apic <= 8)
genapic = &apic_flat;
#endif
goto print;
Expand Down

0 comments on commit 7055646

Please sign in to comment.