Commit-ID: c291b015158577be533dd5a959dfc09bab119eed Gitweb: http://git.kernel.org/tip/c291b015158577be533dd5a959dfc09bab119eed Author: Dou Liyang <douly.f...@cn.fujitsu.com> AuthorDate: Wed, 7 Sep 2016 10:21:33 +0800 Committer: Ingo Molnar <mi...@kernel.org> CommitDate: Thu, 8 Sep 2016 08:11:03 +0200
x86/apic: Fix num_processors value in case of failure If the topology package map check of the APIC ID and the CPU is a failure, we don't generate the processor info for that APIC ID yet we increase disabled_cpus by one - which is buggy. Only increase num_processors once we are sure we don't fail. Signed-off-by: Dou Liyang <douly.f...@cn.fujitsu.com> Acked-by: David Rientjes <rient...@google.com> Cc: Linus Torvalds <torva...@linux-foundation.org> Cc: Peter Zijlstra <pet...@infradead.org> Cc: Thomas Gleixner <t...@linutronix.de> Link: http://lkml.kernel.org/r/1473214893-16481-1-git-send-email-douly.f...@cn.fujitsu.com [ Rewrote the changelog. ] Signed-off-by: Ingo Molnar <mi...@kernel.org> --- arch/x86/kernel/apic/apic.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index 50c95af..f3e9b2d 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c @@ -2093,7 +2093,6 @@ int generic_processor_info(int apicid, int version) return -EINVAL; } - num_processors++; if (apicid == boot_cpu_physical_apicid) { /* * x86_bios_cpu_apicid is required to have processors listed @@ -2116,10 +2115,13 @@ int generic_processor_info(int apicid, int version) pr_warning("APIC: Package limit reached. Processor %d/0x%x ignored.\n", thiscpu, apicid); + disabled_cpus++; return -ENOSPC; } + num_processors++; + /* * Validate version */