projects
/
linux-2.6-microblaze.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
[linux-2.6-microblaze.git]
/
arch
/
arm
/
kernel
/
ptrace.c
diff --git
a/arch/arm/kernel/ptrace.c
b/arch/arm/kernel/ptrace.c
index
b008859
..
43b963e
100644
(file)
--- a/
arch/arm/kernel/ptrace.c
+++ b/
arch/arm/kernel/ptrace.c
@@
-25,6
+25,7
@@
#include <linux/tracehook.h>
#include <linux/unistd.h>
#include <linux/tracehook.h>
#include <linux/unistd.h>
+#include <asm/syscall.h>
#include <asm/traps.h>
#define CREATE_TRACE_POINTS
#include <asm/traps.h>
#define CREATE_TRACE_POINTS
@@
-785,7
+786,8
@@
long arch_ptrace(struct task_struct *child, long request,
break;
case PTRACE_SET_SYSCALL:
break;
case PTRACE_SET_SYSCALL:
- task_thread_info(child)->syscall = data;
+ task_thread_info(child)->abi_syscall = data &
+ __NR_SYSCALL_MASK;
ret = 0;
break;
ret = 0;
break;
@@
-844,14
+846,14
@@
static void tracehook_report_syscall(struct pt_regs *regs,
if (dir == PTRACE_SYSCALL_EXIT)
tracehook_report_syscall_exit(regs, 0);
else if (tracehook_report_syscall_entry(regs))
if (dir == PTRACE_SYSCALL_EXIT)
tracehook_report_syscall_exit(regs, 0);
else if (tracehook_report_syscall_entry(regs))
- current_thread_info()->syscall = -1;
+ current_thread_info()->
abi_
syscall = -1;
regs->ARM_ip = ip;
}
regs->ARM_ip = ip;
}
-asmlinkage int syscall_trace_enter(struct pt_regs *regs
, int scno
)
+asmlinkage int syscall_trace_enter(struct pt_regs *regs)
{
{
-
current_thread_info()->syscall =
scno;
+
int
scno;
if (test_thread_flag(TIF_SYSCALL_TRACE))
tracehook_report_syscall(regs, PTRACE_SYSCALL_ENTER);
if (test_thread_flag(TIF_SYSCALL_TRACE))
tracehook_report_syscall(regs, PTRACE_SYSCALL_ENTER);
@@
-862,11
+864,11
@@
asmlinkage int syscall_trace_enter(struct pt_regs *regs, int scno)
return -1;
#else
/* XXX: remove this once OABI gets fixed */
return -1;
#else
/* XXX: remove this once OABI gets fixed */
- secure_computing_strict(
current_thread_info()->syscall
);
+ secure_computing_strict(
syscall_get_nr(current, regs)
);
#endif
/* Tracer or seccomp may have changed syscall. */
#endif
/* Tracer or seccomp may have changed syscall. */
- scno =
current_thread_info()->syscall
;
+ scno =
syscall_get_nr(current, regs)
;
if (test_thread_flag(TIF_SYSCALL_TRACEPOINT))
trace_sys_enter(regs, scno);
if (test_thread_flag(TIF_SYSCALL_TRACEPOINT))
trace_sys_enter(regs, scno);