diff options
author | Anton Blanchard <anton@samba.org> | 2014-03-10 12:51:58 +1100 |
---|---|---|
committer | Anton Blanchard <anton@samba.org> | 2014-04-23 10:05:25 +1000 |
commit | d51959d70ffc55d1c829e881a6121e6fbbfb29af (patch) | |
tree | bfecc1c5d6272d549d66fb25113770d79602adeb | |
parent | 6403105bfda4d6934b39aeb85ff818b185b42de8 (diff) | |
download | op-kernel-dev-d51959d70ffc55d1c829e881a6121e6fbbfb29af.zip op-kernel-dev-d51959d70ffc55d1c829e881a6121e6fbbfb29af.tar.gz |
powerpc/tracing: TRACE_WITH_FRAME_BUFFER creates invalid stack frames
TRACE_WITH_FRAME_BUFFER creates 32 byte stack frames. On ppc64
ABIv1 this is too small and a callee could corrupt the stack by
writing to the parameter save area (starting at offset 48).
Signed-off-by: Anton Blanchard <anton@samba.org>
-rw-r--r-- | arch/powerpc/include/asm/irqflags.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/include/asm/irqflags.h b/arch/powerpc/include/asm/irqflags.h index f62c056..e20eb95 100644 --- a/arch/powerpc/include/asm/irqflags.h +++ b/arch/powerpc/include/asm/irqflags.h @@ -20,9 +20,9 @@ */ #define TRACE_WITH_FRAME_BUFFER(func) \ mflr r0; \ - stdu r1, -32(r1); \ + stdu r1, -STACK_FRAME_OVERHEAD(r1); \ std r0, 16(r1); \ - stdu r1, -32(r1); \ + stdu r1, -STACK_FRAME_OVERHEAD(r1); \ bl func; \ ld r1, 0(r1); \ ld r1, 0(r1); |