• Jiri Olsa's avatar
    x86/signals: Propagate RF EFLAGS bit through the signal restore call · 5e219b3c
    Jiri Olsa authored
    While porting Vince's perf overflow tests I found perf event
    breakpoint overflow does not work properly.
    
    I found the x86 RF EFLAG bit not being set when returning
    from debug exception after triggering signal handler. Which
    is exactly what you get when you set perf breakpoint overflow
    SIGIO handler.
    
    This patch and the next two patches fix the underlying bugs.
    
    This patch adds the 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.
    Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
    Tested-by: default avatarOleg Nesterov <oleg@redhat.com>
    Reviewed-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Originally-Reported-by: default avatarVince Weaver <vincent.weaver@maine.edu>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Vince Weaver <vincent.weaver@maine.edu>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/1367421944-19082-2-git-send-email-jolsa@redhat.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    5e219b3c
sighandling.h 716 Bytes