From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758408AbZCQVwp (ORCPT ); Tue, 17 Mar 2009 17:52:45 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753316AbZCQVwg (ORCPT ); Tue, 17 Mar 2009 17:52:36 -0400 Received: from ozlabs.org ([203.10.76.45]:57285 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753168AbZCQVwf (ORCPT ); Tue, 17 Mar 2009 17:52:35 -0400 From: Rusty Russell To: Cliff Wickman Subject: Re: [PULL] x86 cpumask work Date: Wed, 18 Mar 2009 08:22:30 +1030 User-Agent: KMail/1.11.1 (Linux/2.6.27-11-generic; KDE/4.2.1; i686; ; ) Cc: mingo@elte.hu, linux-kernel@vger.kernel.org, travis@sgi.com, steiner@sgi.com References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200903180822.31196.rusty@rustcorp.com.au> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wednesday 18 March 2009 05:26:30 Cliff Wickman wrote: > > From: Cliff Wickman > > A patch on Mar13 2009 introduced a bug. I hope the below 1-line fix can > make the 'urgent' list, and get fixed before that patch moves on. > > The Mar13 patch is saved at > http://marc.info/?l=linux-kernel&m=123683186504948&w=2 > > The allocation of per-cpu uv_flush_tlb_mask's in arch/x86/kernel/tlb_uv.c > changed a variable that should been reset to 0. Hi Cliff, Thanks for tracking this. May I suggest this slightly enhanced version? Subject: cpumask: fix tlb_uv initialization Impact: fix boot on UV systems Commit 76ba0ecda0de9accea9a91cb6dbde46782110e1c "cpumask: use cpumask_var_t in uv_flush_tlb_others" used cur_cpu as an iterator; it was supposed to be zero for the code below it. Signed-off-by: Rusty Russell diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c index 8afb691..deb5ebb 100644 --- a/arch/x86/kernel/tlb_uv.c +++ b/arch/x86/kernel/tlb_uv.c @@ -751,7 +751,7 @@ static int __init uv_bau_init(void) int node; int nblades; int last_blade; - int cur_cpu = 0; + int cur_cpu; if (!is_uv_system()) return 0; @@ -765,6 +765,7 @@ static int __init uv_bau_init(void) uv_mmask = (1UL << uv_hub_info->n_val) - 1; nblades = 0; last_blade = -1; + cur_cpu = 0; for_each_online_node(node) { blade = uv_node_to_blade_id(node); if (blade == last_blade)