From patchwork Tue Apr 7 22:24:11 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Miller X-Patchwork-Id: 25696 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 6E2F0DE0AB for ; Wed, 8 Apr 2009 08:24:25 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755164AbZDGWYW (ORCPT ); Tue, 7 Apr 2009 18:24:22 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1760147AbZDGWYW (ORCPT ); Tue, 7 Apr 2009 18:24:22 -0400 Received: from 74-93-104-97-Washington.hfc.comcastbusiness.net ([74.93.104.97]:51112 "EHLO sunset.davemloft.net" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1755164AbZDGWYV (ORCPT ); Tue, 7 Apr 2009 18:24:21 -0400 Received: from localhost (localhost [127.0.0.1]) by sunset.davemloft.net (Postfix) with ESMTP id CA9B8C8D935; Tue, 7 Apr 2009 15:24:11 -0700 (PDT) Date: Tue, 07 Apr 2009 15:24:11 -0700 (PDT) Message-Id: <20090407.152411.198483029.davem@davemloft.net> To: dennis@ausil.us Cc: sparclinux@vger.kernel.org Subject: Re: kernel bug with CONFIG_KEYBOARD_ATKBD=y From: David Miller In-Reply-To: <20090407.151638.93201206.davem@davemloft.net> References: <20090407.145755.213806619.davem@davemloft.net> <200904071710.09685.dennis@ausil.us> <20090407.151638.93201206.davem@davemloft.net> X-Mailer: Mew version 6.2.51 on Emacs 22.1 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Sender: sparclinux-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: sparclinux@vger.kernel.org From: David Miller Date: Tue, 07 Apr 2009 15:16:38 -0700 (PDT) > From: Dennis Gilmore > Date: Tue, 7 Apr 2009 17:10:08 -0500 > >> On Tuesday 07 April 2009 04:57:55 pm David Miller wrote: >>> From: Dennis Gilmore >>> Date: Tue, 7 Apr 2009 10:01:17 -0500 >>> >>> > Initalizing network drop monitor service >>> > kernel BUG at >>> > /builddir/build/BUILD/kernel-2.6.29/linux-2.6.29.sparc64/arch/sparc/inclu >>> >de/asm/tlb_64.h:48! >>> >>> What kernel is this tree based upon? 2.6.29.1? >> yeah 2.6.29.1 > > A sparc64 fix I put into 2.6.29.1 is likely the cause. It's possible > I put in a version without a particular issue cured. Indeed, here is the fix, I'll push it to -stable. Thanks for your report: sparc64: Fix bug in ("sparc64: Flush TLB before releasing pages.") [ No upstream commit, this regression was added only to 2.6.29.1 ] Unfortunately I merged an earlier version of commit b6816b706138c3870f03115071872cad824f90b4 ("sparc64: Flush TLB before releasing pages.") than what I actually tested and merged upstream. Simply diffing asm/tlb_64.h in Linus's tree vs. what ended up in 2.6.29.1 confirms this. Sync things up to fix BUG() triggers some users are seeing. Reported-by: Dennis Gilmore Signed-off-by: David S. Miller --- arch/sparc/include/asm/tlb_64.h | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/sparc/include/asm/tlb_64.h b/arch/sparc/include/asm/tlb_64.h index 0aaa086..ee38e73 100644 --- a/arch/sparc/include/asm/tlb_64.h +++ b/arch/sparc/include/asm/tlb_64.h @@ -57,9 +57,9 @@ static inline struct mmu_gather *tlb_gather_mmu(struct mm_struct *mm, unsigned i static inline void tlb_flush_mmu(struct mmu_gather *mp) { + if (!mp->fullmm) + flush_tlb_pending(); if (mp->need_flush) { - if (!mp->fullmm) - flush_tlb_pending(); free_pages_and_swap_cache(mp->pages, mp->pages_nr); mp->pages_nr = 0; mp->need_flush = 0;