Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161028AbWBHGsb (ORCPT ); Wed, 8 Feb 2006 01:48:31 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1161016AbWBHGnH (ORCPT ); Wed, 8 Feb 2006 01:43:07 -0500 Received: from 216-99-217-87.dsl.aracnet.com ([216.99.217.87]:14723 "EHLO sorel.sous-sol.org") by vger.kernel.org with ESMTP id S1161015AbWBHGnA (ORCPT ); Wed, 8 Feb 2006 01:43:00 -0500 Message-Id: <20060208064917.544933000@sorel.sous-sol.org> References: <20060208064503.924238000@sorel.sous-sol.org> Date: Tue, 07 Feb 2006 22:45:25 -0800 From: Chris Wright To: linux-kernel@vger.kernel.org, stable@kernel.org Cc: Justin Forbes , Zwane Mwaikambo , "Theodore Ts'o" , Randy Dunlap , Dave Jones , Chuck Wolber , torvalds@osdl.org, akpm@osdl.org, alan@lxorguk.ukuu.org.uk, Daniel Drake , ashok.raj@intel.com, Andi Kleen Subject: [PATCH 22/23] [PATCH] x86_64: Dont record local apic ids when they are disabled in MADT Content-Disposition: inline; filename=x86_64-dont-record-local-apic-ids-when-they-are-disabled-in-madt.patch Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1817 Lines: 52 -stable review patch. If anyone has any objections, please let us know. ------------------ Some broken BIOS's had processors disabled, but same apic id as a valid processor. This causes acpi_processor_start() to think this disabled cpu is ok, and croak. So we dont record bad apicid's anymore. http://bugzilla.kernel.org/show_bug.cgi?id=5930 Signed-off-by: Ashok Raj Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds Signed-off-by: Chris Wright --- arch/i386/kernel/acpi/boot.c | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) Index: linux-2.6.15.3/arch/i386/kernel/acpi/boot.c =================================================================== --- linux-2.6.15.3.orig/arch/i386/kernel/acpi/boot.c +++ linux-2.6.15.3/arch/i386/kernel/acpi/boot.c @@ -248,10 +248,17 @@ acpi_parse_lapic(acpi_table_entry_header acpi_table_print_madt_entry(header); - /* Register even disabled CPUs for cpu hotplug */ - - x86_acpiid_to_apicid[processor->acpi_id] = processor->id; + /* Record local apic id only when enabled */ + if (processor->flags.enabled) + x86_acpiid_to_apicid[processor->acpi_id] = processor->id; + /* + * We need to register disabled CPU as well to permit + * counting disabled CPUs. This allows us to size + * cpus_possible_map more accurately, to permit + * to not preallocating memory for all NR_CPUS + * when we use CPU hotplug. + */ mp_register_lapic(processor->id, /* APIC ID */ processor->flags.enabled); /* Enabled? */ -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/