Re: Oops in trace_hardirqs_on (powerpc)
From: Jörg Sommer <hidden>
Date: 2010-12-26 10:50:47
Also in:
lkml
Attachments
- signature.asc [application/pgp-signature] 198 bytes
From: Jörg Sommer <hidden>
Date: 2010-12-26 10:50:47
Also in:
lkml
Hi Steven, Steven Rostedt hat am Wed 22. Dec, 21:42 (-0500) geschrieben:
On Sun, 2010-12-19 at 14:27 +0100, Jörg Sommer wrote:quoted
Did you've fixed this problem? The bug report is still marked as open. https://bugzilla.kernel.org/show_bug.cgi?id=16573I 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. -- Stevediff --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 */
This patch eliminates the oopses. Bye, Jörg. -- Der Klügere gibt so lange nach bis er der Dumme ist.