forked from luck/tmp_suning_uos_patched
ptrace: move clearing of TIF_SYSCALL_EMU flag to core
While the TIF_SYSCALL_EMU is set in ptrace_resume independent of any architecture, currently only powerpc and x86 unset the TIF_SYSCALL_EMU flag in ptrace_disable which gets called from ptrace_detach. Let's move the clearing of TIF_SYSCALL_EMU flag to __ptrace_unlink which gets executed from ptrace_detach and also keep it along with or close to clearing of TIF_SYSCALL_TRACE. Cc: Paul Mackerras <paulus@samba.org> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Acked-by: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:
parent
6168103600
commit
15532fd6f5
|
@ -2521,7 +2521,6 @@ void ptrace_disable(struct task_struct *child)
|
||||||
{
|
{
|
||||||
/* make sure the single step bit is not set. */
|
/* make sure the single step bit is not set. */
|
||||||
user_disable_single_step(child);
|
user_disable_single_step(child);
|
||||||
clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PPC_ADV_DEBUG_REGS
|
#ifdef CONFIG_PPC_ADV_DEBUG_REGS
|
||||||
|
|
|
@ -747,9 +747,6 @@ static int ioperm_get(struct task_struct *target,
|
||||||
void ptrace_disable(struct task_struct *child)
|
void ptrace_disable(struct task_struct *child)
|
||||||
{
|
{
|
||||||
user_disable_single_step(child);
|
user_disable_single_step(child);
|
||||||
#ifdef TIF_SYSCALL_EMU
|
|
||||||
clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION
|
#if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION
|
||||||
|
|
|
@ -118,6 +118,9 @@ void __ptrace_unlink(struct task_struct *child)
|
||||||
BUG_ON(!child->ptrace);
|
BUG_ON(!child->ptrace);
|
||||||
|
|
||||||
clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
|
clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
|
||||||
|
#ifdef TIF_SYSCALL_EMU
|
||||||
|
clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
|
||||||
|
#endif
|
||||||
|
|
||||||
child->parent = child->real_parent;
|
child->parent = child->real_parent;
|
||||||
list_del_init(&child->ptrace_entry);
|
list_del_init(&child->ptrace_entry);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user