Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964799AbWCABlN (ORCPT ); Tue, 28 Feb 2006 20:41:13 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S964801AbWCABlN (ORCPT ); Tue, 28 Feb 2006 20:41:13 -0500 Received: from liaag2af.mx.compuserve.com ([149.174.40.157]:9119 "EHLO liaag2af.mx.compuserve.com") by vger.kernel.org with ESMTP id S964799AbWCABlM (ORCPT ); Tue, 28 Feb 2006 20:41:12 -0500 Date: Tue, 28 Feb 2006 20:36:52 -0500 From: Chuck Ebbert <76306.1226@compuserve.com> Subject: Re: [patch 05/39] [PATCH] i386: Move phys_proc_id/early intel workaround to corr To: Chris Wright Cc: linux-kernel , linux-stable , Zwane Mwaikambo , "Theodore Ts'o" , Randy Dunlap , Dave Jones , Chuck Wolber , Linus Torvalds , Andrew Morton , Alan Cox , Andi Kleen , Greg KH Message-ID: <200602282039_MC3-1-B985-4C46@compuserve.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2905 Lines: 80 In-Reply-To: <20060227223324.852289000@sorel.sous-sol.org> On Mon, 27 Feb 2006 14:32:05, Chris Wright wrote: > -stable review patch. If anyone has any objections, please let us know. > ------------------ > > early_cpu_detect only runs on the BP, but this code needs to run > on all CPUs. This will fix problems with the powernow-k8 driver > on dual core systems and general misdetection of AMD dual core. > > Looks like a mismerge somewhere. Also add a warning comment. > > Signed-off-by: Andi Kleen > Signed-off-by: Chris Wright > Signed-off-by: Greg Kroah-Hartman > --- > > arch/i386/kernel/cpu/common.c | 17 ++++++++++------- > 1 files changed, 10 insertions(+), 7 deletions(-) > > --- linux-2.6.15.4.orig/arch/i386/kernel/cpu/common.c > +++ linux-2.6.15.4/arch/i386/kernel/cpu/common.c > @@ -207,7 +207,10 @@ static int __devinit have_cpuid_p(void) > > /* Do minimum CPU detection early. > Fields really needed: vendor, cpuid_level, family, model, mask, cache alignment. > - The others are not touched to avoid unwanted side effects. */ > + The others are not touched to avoid unwanted side effects. > + > + WARNING: this function is only called on the BP. Don't add code here > + that is supposed to run on all CPUs. */ > static void __init early_cpu_detect(void) > { > struct cpuinfo_x86 *c = &boot_cpu_data; > @@ -239,12 +242,6 @@ static void __init early_cpu_detect(void > if (cap0 & (1<<19)) > c->x86_cache_alignment = ((misc >> 8) & 0xff) * 8; > } > - > - early_intel_workaround(c); ==> This has been in this location since at least 2.6.9. If it's also needed in generic_identify(), fine, but it should be left here too. I think this patch in 2.6.16-rc is wrong. The comment for this function says it really needs accurate cache alignment information, presumably because it's needed for early boot setup, and without this it won't be accurate. > - > -#ifdef CONFIG_X86_HT > - phys_proc_id[smp_processor_id()] = (cpuid_ebx(1) >> 24) & 0xff; > -#endif > } > > void __devinit generic_identify(struct cpuinfo_x86 * c) > @@ -292,6 +289,12 @@ void __devinit generic_identify(struct c > get_model_name(c); /* Default name */ > } > } > + > + early_intel_workaround(c); > + > +#ifdef CONFIG_X86_HT > + phys_proc_id[smp_processor_id()] = (cpuid_ebx(1) >> 24) & 0xff; > +#endif > } > > static void __devinit squash_the_stupid_serial_number(struct cpuinfo_x86 *c) > -- Chuck "Equations are the Devil's sentences." --Stephen Colbert - 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/