Re: [PATCH 1/6] signal x86: Propage RF EFLAGS bit throught thesignal restore call

From: Frederic Weisbecker
Date: Wed Apr 24 2013 - 11:39:24 EST


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/