On 08/01, Sebastian Andrzej Siewior wrote: > > So a patch like > --- a/arch/x86/kernel/step.c > +++ b/arch/x86/kernel/step.c > @@ -173,8 +173,8 @@ static void enable_step(struct task_struct *child, > bool block) > unsigned long debugctl = get_debugctlmsr(); > > debugctl |= DEBUGCTLMSR_BTF; > - update_debugctlmsr(debugctl); > set_tsk_thread_flag(child, TIF_BLOCKSTEP); > + update_debugctlmsr(debugctl); > } else if (test_tsk_thread_flag(child, TIF_BLOCKSTEP)) { > unsigned long debugctl = get_debugctlmsr(); > > should fix the race
No, I don't think it can fix something ;) or make any difference. > and _yes_ I also would follow your suggestion to > remove this update_debugctlmsr() here since switch_to() should do this. Agreed, but once again, uprobes needs it if child == current (but we should move this code into the trivial helper). If we change (I hope) uprobes to avoid user_enable_single_step() we will export the helper. Oleg. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/