[ARM] Move syscall saving out of the way of utrace
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Sun, 6 May 2007 12:56:26 +0000 (13:56 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 6 May 2007 12:56:26 +0000 (13:56 +0100)
utrace removes the ptrace_message field in task_struct.  Move our use
of this field into a new member in thread_info called "syscall"

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/ptrace.c
include/asm-arm/thread_info.h

index e594b84cca839d39e69c259a48aef29826baf9c7..13af4006a40fa3a0022a5331a39111769e99b6f1 100644 (file)
@@ -779,8 +779,8 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
                        break;
 
                case PTRACE_SET_SYSCALL:
+                       task_thread_info(child)->syscall = data;
                        ret = 0;
-                       child->ptrace_message = data;
                        break;
 
 #ifdef CONFIG_CRUNCH
@@ -817,7 +817,7 @@ asmlinkage int syscall_trace(int why, struct pt_regs *regs, int scno)
        ip = regs->ARM_ip;
        regs->ARM_ip = why;
 
-       current->ptrace_message = scno;
+       current_thread_info()->syscall = scno;
 
        /* the 0x80 provides a way for the tracing parent to distinguish
           between a syscall stop and SIGTRAP delivery */
@@ -834,5 +834,5 @@ asmlinkage int syscall_trace(int why, struct pt_regs *regs, int scno)
        }
        regs->ARM_ip = ip;
 
-       return current->ptrace_message;
+       return current_thread_info()->syscall;
 }
index 5014794f9eb3db955fef7b114322069862ba857b..eae85b09db2eb85f5c2136fb649fdc35fbabc033 100644 (file)
@@ -57,6 +57,7 @@ struct thread_info {
        __u32                   cpu;            /* cpu */
        __u32                   cpu_domain;     /* cpu domain */
        struct cpu_context_save cpu_context;    /* cpu context */
+       __u32                   syscall;        /* syscall number */
        __u8                    used_cp[16];    /* thread used copro */
        unsigned long           tp_value;
        struct crunch_state     crunchstate;