summaryrefslogtreecommitdiff
path: root/arch/ia64/ia32/ia32_entry.S
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2008-10-17 20:51:16 (GMT)
committerTony Luck <tony.luck@intel.com>2008-10-17 20:51:16 (GMT)
commit9224652cc76417bfe779bcdb1243cf0b083e3eee (patch)
treed80d0f2d00d9eda6500deedc9488071f005f732b /arch/ia64/ia32/ia32_entry.S
parent4d4230c27f380745b7fc30c0906402eede3b2cff (diff)
parent680973edf122fd95735ecfc077cf79645d2e5081 (diff)
downloadlinux-9224652cc76417bfe779bcdb1243cf0b083e3eee.tar.xz
Pull utrace into release branch
Diffstat (limited to 'arch/ia64/ia32/ia32_entry.S')
-rw-r--r--arch/ia64/ia32/ia32_entry.S7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/ia64/ia32/ia32_entry.S b/arch/ia64/ia32/ia32_entry.S
index 82a7a0b..a8cf199 100644
--- a/arch/ia64/ia32/ia32_entry.S
+++ b/arch/ia64/ia32/ia32_entry.S
@@ -108,6 +108,11 @@ GLOBAL_ENTRY(ia32_trace_syscall)
;;
st8 [r2]=r3 // initialize return code to -ENOSYS
br.call.sptk.few rp=syscall_trace_enter // give parent a chance to catch syscall args
+ cmp.lt p6,p0=r8,r0 // check tracehook
+ adds r2=IA64_PT_REGS_R8_OFFSET+16,sp // r2 = &pt_regs.r8
+ ;;
+(p6) st8.spill [r2]=r8 // store return value in slot for r8
+(p6) br.spnt.few .ret4
.ret2: // Need to reload arguments (they may be changed by the tracing process)
adds r2=IA64_PT_REGS_R1_OFFSET+16,sp // r2 = &pt_regs.r1
adds r3=IA64_PT_REGS_R13_OFFSET+16,sp // r3 = &pt_regs.r13
@@ -199,7 +204,7 @@ ia32_syscall_table:
data8 sys_setuid /* 16-bit version */
data8 sys_getuid /* 16-bit version */
data8 compat_sys_stime /* 25 */
- data8 sys32_ptrace
+ data8 compat_sys_ptrace
data8 sys32_alarm
data8 sys_ni_syscall
data8 sys_pause