Re: [HACK] utrace: fix utrace_resume()-finish_resume_report() logic

2009-11-18 Thread Oleg Nesterov
On 11/16, Roland McGrath wrote: You cited the one most obvious case: utrace_get_signal() has just run, so finish_resume_report() has just run and everything is already as we want. What else? I think, we can say that finish_resume_report() must be never called without reporting loop if

[HACK] utrace: fix utrace_resume()-finish_resume_report() logic

2009-11-16 Thread Oleg Nesterov
In short, it is just wrong to call finish_resume_report() in utrace_resume() without reporting loop, because utrace never clears TIF_NOTIFY_RESUME. It is very possible we enter utrace_resume() with utrace-resume == UTRACE_RESUME, in this case finish_resume_report() does user_disable_single_step().

Re: [HACK] utrace: fix utrace_resume()-finish_resume_report() logic

2009-11-16 Thread Roland McGrath
In short, it is just wrong to call finish_resume_report() in utrace_resume() without reporting loop, because utrace never clears TIF_NOTIFY_RESUME. It's not supposed to. The arch code clears TIF_NOTIFY_RESUME before calling tracehook_notify_resume(). This implies that utrace must keep its