/* * Called by kernel/ptrace.c when detaching. * * Make sure the single step bit is not set. */ void ptrace_disable(struct task_struct *child) { /* Deconfigure SPC and S-bit. */ user_disable_single_step(child); put_reg(child, PT_SPC, 0); /* Deconfigure any watchpoints associated with the child. */ deconfigure_bp(child->pid); }
/* * Called by kernel/ptrace.c when detaching. * * Make sure the single step bit is not set. */ void ptrace_disable(struct task_struct *child) { unsigned long tmp; /* Deconfigure SPC and S-bit. */ tmp = get_reg(child, PT_CCS) & ~SBIT_USER; put_reg(child, PT_CCS, tmp); put_reg(child, PT_SPC, 0); /* Deconfigure any watchpoints associated with the child. */ deconfigure_bp(child->pid); }
void exit_thread(struct task_struct *tsk) { deconfigure_bp(tsk->pid); }