diff options
author | Markus Metzger <markus.t.metzger@intel.com> | 2009-04-03 10:43:48 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-04-07 07:36:31 -0400 |
commit | 0f4814065ff8c24ca8bfd75c9b73502be152c287 (patch) | |
tree | f3816ecb64ee198235d2e9c1649de3241c3f2ac2 /arch/x86 | |
parent | ee811517a5604aa63fae803b7c044712699e1303 (diff) |
x86, ptrace: add bts context unconditionally
Add the ptrace bts context field to task_struct unconditionally.
Initialize the field directly in copy_process().
Remove all the unneeded functionality used to initialize that field.
Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
Cc: roland@redhat.com
Cc: eranian@googlemail.com
Cc: oleg@redhat.com
Cc: juan.villacis@intel.com
Cc: ak@linux.jf.intel.com
LKML-Reference: <20090403144603.292754000@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/include/asm/ptrace.h | 9 | ||||
-rw-r--r-- | arch/x86/kernel/ptrace.c | 20 |
2 files changed, 5 insertions, 24 deletions
diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h index e304b66abeea..5cdd19f20b5b 100644 --- a/arch/x86/include/asm/ptrace.h +++ b/arch/x86/include/asm/ptrace.h | |||
@@ -235,12 +235,11 @@ extern int do_get_thread_area(struct task_struct *p, int idx, | |||
235 | extern int do_set_thread_area(struct task_struct *p, int idx, | 235 | extern int do_set_thread_area(struct task_struct *p, int idx, |
236 | struct user_desc __user *info, int can_allocate); | 236 | struct user_desc __user *info, int can_allocate); |
237 | 237 | ||
238 | extern void x86_ptrace_untrace(struct task_struct *); | 238 | #ifdef CONFIG_X86_PTRACE_BTS |
239 | extern void x86_ptrace_fork(struct task_struct *child, | 239 | extern void ptrace_bts_untrace(struct task_struct *tsk); |
240 | unsigned long clone_flags); | ||
241 | 240 | ||
242 | #define arch_ptrace_untrace(tsk) x86_ptrace_untrace(tsk) | 241 | #define arch_ptrace_untrace(tsk) ptrace_bts_untrace(tsk) |
243 | #define arch_ptrace_fork(child, flags) x86_ptrace_fork(child, flags) | 242 | #endif /* CONFIG_X86_PTRACE_BTS */ |
244 | 243 | ||
245 | #endif /* __KERNEL__ */ | 244 | #endif /* __KERNEL__ */ |
246 | 245 | ||
diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c index adbb24322d8f..b32a8ee53381 100644 --- a/arch/x86/kernel/ptrace.c +++ b/arch/x86/kernel/ptrace.c | |||
@@ -887,37 +887,19 @@ static int ptrace_bts_size(struct task_struct *child) | |||
887 | return (trace->ds.top - trace->ds.begin) / trace->ds.size; | 887 | return (trace->ds.top - trace->ds.begin) / trace->ds.size; |
888 | } | 888 | } |
889 | 889 | ||
890 | static inline void ptrace_bts_fork(struct task_struct *tsk) | ||
891 | { | ||
892 | tsk->bts = NULL; | ||
893 | } | ||
894 | |||
895 | /* | 890 | /* |
896 | * Called from __ptrace_unlink() after the child has been moved back | 891 | * Called from __ptrace_unlink() after the child has been moved back |
897 | * to its original parent. | 892 | * to its original parent. |
898 | */ | 893 | */ |
899 | static inline void ptrace_bts_untrace(struct task_struct *child) | 894 | void ptrace_bts_untrace(struct task_struct *child) |
900 | { | 895 | { |
901 | if (unlikely(child->bts)) { | 896 | if (unlikely(child->bts)) { |
902 | free_bts_context(child->bts); | 897 | free_bts_context(child->bts); |
903 | child->bts = NULL; | 898 | child->bts = NULL; |
904 | } | 899 | } |
905 | } | 900 | } |
906 | #else | ||
907 | static inline void ptrace_bts_fork(struct task_struct *tsk) {} | ||
908 | static inline void ptrace_bts_untrace(struct task_struct *child) {} | ||
909 | #endif /* CONFIG_X86_PTRACE_BTS */ | 901 | #endif /* CONFIG_X86_PTRACE_BTS */ |
910 | 902 | ||
911 | void x86_ptrace_fork(struct task_struct *child, unsigned long clone_flags) | ||
912 | { | ||
913 | ptrace_bts_fork(child); | ||
914 | } | ||
915 | |||
916 | void x86_ptrace_untrace(struct task_struct *child) | ||
917 | { | ||
918 | ptrace_bts_untrace(child); | ||
919 | } | ||
920 | |||
921 | /* | 903 | /* |
922 | * Called by kernel/ptrace.c when detaching.. | 904 | * Called by kernel/ptrace.c when detaching.. |
923 | * | 905 | * |