diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2007-05-06 08:56:26 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2007-05-06 08:56:26 -0400 |
commit | 5ba6d3febd4978f31b2c523d64d381603923a709 (patch) | |
tree | 74701df63fb8bcea5305681711c1a2338b7ddc69 | |
parent | 40435792525c49cf126ba92d223e877acb5ce021 (diff) |
[ARM] Move syscall saving out of the way of utrace
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>
-rw-r--r-- | arch/arm/kernel/ptrace.c | 6 | ||||
-rw-r--r-- | include/asm-arm/thread_info.h | 1 |
2 files changed, 4 insertions, 3 deletions
diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c index e594b84cca83..13af4006a40f 100644 --- a/arch/arm/kernel/ptrace.c +++ b/arch/arm/kernel/ptrace.c | |||
@@ -779,8 +779,8 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
779 | break; | 779 | break; |
780 | 780 | ||
781 | case PTRACE_SET_SYSCALL: | 781 | case PTRACE_SET_SYSCALL: |
782 | task_thread_info(child)->syscall = data; | ||
782 | ret = 0; | 783 | ret = 0; |
783 | child->ptrace_message = data; | ||
784 | break; | 784 | break; |
785 | 785 | ||
786 | #ifdef CONFIG_CRUNCH | 786 | #ifdef CONFIG_CRUNCH |
@@ -817,7 +817,7 @@ asmlinkage int syscall_trace(int why, struct pt_regs *regs, int scno) | |||
817 | ip = regs->ARM_ip; | 817 | ip = regs->ARM_ip; |
818 | regs->ARM_ip = why; | 818 | regs->ARM_ip = why; |
819 | 819 | ||
820 | current->ptrace_message = scno; | 820 | current_thread_info()->syscall = scno; |
821 | 821 | ||
822 | /* the 0x80 provides a way for the tracing parent to distinguish | 822 | /* the 0x80 provides a way for the tracing parent to distinguish |
823 | between a syscall stop and SIGTRAP delivery */ | 823 | between a syscall stop and SIGTRAP delivery */ |
@@ -834,5 +834,5 @@ asmlinkage int syscall_trace(int why, struct pt_regs *regs, int scno) | |||
834 | } | 834 | } |
835 | regs->ARM_ip = ip; | 835 | regs->ARM_ip = ip; |
836 | 836 | ||
837 | return current->ptrace_message; | 837 | return current_thread_info()->syscall; |
838 | } | 838 | } |
diff --git a/include/asm-arm/thread_info.h b/include/asm-arm/thread_info.h index 5014794f9eb3..eae85b09db2e 100644 --- a/include/asm-arm/thread_info.h +++ b/include/asm-arm/thread_info.h | |||
@@ -57,6 +57,7 @@ struct thread_info { | |||
57 | __u32 cpu; /* cpu */ | 57 | __u32 cpu; /* cpu */ |
58 | __u32 cpu_domain; /* cpu domain */ | 58 | __u32 cpu_domain; /* cpu domain */ |
59 | struct cpu_context_save cpu_context; /* cpu context */ | 59 | struct cpu_context_save cpu_context; /* cpu context */ |
60 | __u32 syscall; /* syscall number */ | ||
60 | __u8 used_cp[16]; /* thread used copro */ | 61 | __u8 used_cp[16]; /* thread used copro */ |
61 | unsigned long tp_value; | 62 | unsigned long tp_value; |
62 | struct crunch_state crunchstate; | 63 | struct crunch_state crunchstate; |