On Wed, Apr 17, 2013 at 10:02:06PM +0200, Oleg Nesterov wrote: > On 04/16, Oleg Nesterov wrote: > > > > On 04/16, Frederic Weisbecker wrote: > > > > > > On Sun, Mar 10, 2013 at 07:41:06PM +0100, Jiri Olsa wrote: > > > > Adding RF EFLAGS bit to be restored on return from signal from > > > > the original register context before the signal was entered. > > > > > > > > This will prevent the RF flag to disappear when returning > > > > from exception due to the signal handler being executed. > > > > > > So that happens if, say, we get a breakpoint exception and then we > > > run a signal handler before returning to the ip that triggered the > > > breakpoint? > > > > Afaics these changes (1 and 2) should fix the bug. > > > > Suppose that the first insn in the signal handler should trigger > > another bp, we should clear X86_EFLAGS_RF (2/6). > > > > Otoh, we should restore it when we return to the original insn > > which triggered the trap to avoid another trap. > > I applied 1 and 2, and this fixes the test-case below. > > > But. it seems that we have yet another problem? Suppose that > > the signal handler does siglongjmp() and jumps to yet another > > insn which should trigger the trap? > > Argh. Sorry for confusion. I tried to say that the signal handler > can play with sigcontext->ip before sigreturn(). But probably we > can ignore this.
Hmm, ok. Anyway patches 1-3 look good! Thanks! -- 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/