• Martin Schwidefsky's avatar
    s390/ptrace: race of single stepping vs signal delivery · 39efd4ec
    Martin Schwidefsky authored
    The current single step code is racy in regard to concurrent delivery
    of signals. If a signal is delivered after a PER program check occurred
    but before the TIF_PER_TRAP bit has been checked in entry[64].S the code
    clears TIF_PER_TRAP and then calls do_signal. This is wrong, if the
    instruction completed (or has been suppressed) a SIGTRAP should be
    delivered to the debugger in any case. Only if the instruction has been
    nullified the SIGTRAP may not be send.
    The new logic always sets TIF_PER_TRAP if the program check indicates PER
    tracing but removes it again for all program checks that are nullifying.
    The effect is that for each change in the PSW address we now get a
    single SIGTRAP.
    Reported-by: default avatarAndreas Arnez <arnez@linux.vnet.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
signal.c 13.6 KB