From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from hrndva-omtalb.mail.rr.com (hrndva-omtalb.mail.rr.com [71.74.56.122]) by ozlabs.org (Postfix) with ESMTP id 0B5ABB711C for ; Fri, 21 Jan 2011 11:46:26 +1100 (EST) Subject: Re: Oops in trace_hardirqs_on (powerpc) From: Steven Rostedt To: =?ISO-8859-1?Q?J=F6rg?= Sommer In-Reply-To: <1293072176.22802.6.camel@gandalf.stny.rr.com> References: <20100806233157.GA7117@alea.gnuu.de> <1285184671.26872.127.camel@gandalf.stny.rr.com> <20100927125037.GA4497@alea.gnuu.de> <1285639094.2989.1.camel@frodo> <20101219132705.GE6615@alea.gnuu.de> <1293072176.22802.6.camel@gandalf.stny.rr.com> Content-Type: text/plain; charset="ISO-8859-15" Date: Thu, 20 Jan 2011 19:46:23 -0500 Message-ID: <1295570783.12215.3239.camel@gandalf.stny.rr.com> Mime-Version: 1.0 Cc: Frederic Weisbecker , Ingo Molnar , linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Wed, 2010-12-22 at 21:42 -0500, Steven Rostedt wrote: > On Sun, 2010-12-19 at 14:27 +0100, Jörg Sommer wrote: > > Hi Steven, > > > > > Did you've fixed this problem? The bug report is still marked as open. > > https://bugzilla.kernel.org/show_bug.cgi?id=16573 > > > > I just posted a patch to that BZ. I have it here below too. Could you > see if it fixes you problem. I only fixed the one place that you > reported, it may need more fixes (and in that case a macro to do the > work). > > I hit the same bug on my ppc64 box, and have a fix for that, that I'll > post to LKML tomorrow. Here's my official: Signed-off-by: Steven Rostedt -- Steve > -- Steve > > diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S > index ed4aeb9..915cc03 100644 > --- a/arch/powerpc/kernel/entry_32.S > +++ b/arch/powerpc/kernel/entry_32.S > @@ -879,7 +879,18 @@ END_MMU_FTR_SECTION_IFSET(MMU_FTR_TYPE_47x) > */ > andi. r10,r9,MSR_EE > beq 1f > + /* > + * Since the ftrace irqsoff latency trace checks CALLER_ADDR1, > + * which is the stack frame here, we need to force a stack frame > + * in case we came from user space. > + */ > + stwu r1,-32(r1) > + mflr r0 > + stw r0,4(r1) > + stwu r1,-32(r1) > bl trace_hardirqs_on > + lwz r1,0(r1) > + lwz r1,0(r1) > lwz r9,_MSR(r1) > 1: > #endif /* CONFIG_TRACE_IRQFLAGS */ >