summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/entry_32.S
diff options
context:
space:
mode:
authorGrant Likely <grant.likely@secretlab.ca>2011-02-12 23:53:34 -0700
committerGrant Likely <grant.likely@secretlab.ca>2011-02-12 23:53:34 -0700
commitc170093d31bd4e3bc51881cc0f123beeca7872c9 (patch)
treed93cd280d525dd339f33be010c75b7fd0bacd690 /arch/powerpc/kernel/entry_32.S
parent557218e2d662574bc58d840fe116c7fd8d57aed8 (diff)
parent78bba987bc025a7263248501b453476e77b93331 (diff)
downloadtalos-op-linux-c170093d31bd4e3bc51881cc0f123beeca7872c9.tar.gz
talos-op-linux-c170093d31bd4e3bc51881cc0f123beeca7872c9.zip
Merge branch 'devicetree/merge' into spi/merge
Diffstat (limited to 'arch/powerpc/kernel/entry_32.S')
-rw-r--r--arch/powerpc/kernel/entry_32.S11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
index c22dc1ec1c94..56212bc0ab08 100644
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
@@ -880,7 +880,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 */
OpenPOWER on IntegriCloud