summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/entry_32.S
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2008-07-27 08:51:03 +0200
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2008-07-28 08:30:49 +0200
commit4f72c4279eab1e5f3ed1ac4e55d4527617582392 (patch)
tree5a170211e0206d4d17a008dec9c88827c95c1152 /arch/powerpc/kernel/entry_32.S
parentpowerpc: Call tracehook_signal_handler() when setting up signal frames (diff)
downloadlinux-4f72c4279eab1e5f3ed1ac4e55d4527617582392.tar.xz
linux-4f72c4279eab1e5f3ed1ac4e55d4527617582392.zip
powerpc: Make syscall tracing use tracehook.h helpers
This changes powerpc syscall tracing to use the new tracehook.h entry points. There is no change, only cleanup. In addition, the assembly changes allow do_syscall_trace_enter() to abort the syscall without losing the information about the original r0 value. Signed-off-by: Roland McGrath <roland@redhat.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/entry_32.S')
-rw-r--r--arch/powerpc/kernel/entry_32.S7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
index da52269aec1e..e6fca6a9014d 100644
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
@@ -343,7 +343,12 @@ syscall_dotrace:
stw r0,_TRAP(r1)
addi r3,r1,STACK_FRAME_OVERHEAD
bl do_syscall_trace_enter
- lwz r0,GPR0(r1) /* Restore original registers */
+ /*
+ * Restore argument registers possibly just changed.
+ * We use the return value of do_syscall_trace_enter
+ * for call number to look up in the table (r0).
+ */
+ mr r0,r3
lwz r3,GPR3(r1)
lwz r4,GPR4(r1)
lwz r5,GPR5(r1)