• Roland McGrath's avatar
    x86 ptrace: unify TIF_SINGLESTEP · 64f09733
    Roland McGrath authored
    This unifies the treatment of TIF_SINGLESTEP on i386 and x86_64.
    The bit is now excluded from _TIF_WORK_MASK on i386 as it has been
    on x86_64.  This means the do_notify_resume() path using it is never
    used, so TIF_SINGLESTEP is not cleared on returning to user mode.
    
    Both now leave TIF_SINGLESTEP set when returning to user, so that
    it's already set on an int $0x80 system call entry.  This removes
    the need for testing TF on the system_call path.  Doing it this way
    fixes the regression for PTRACE_SINGLESTEP into a sigreturn syscall,
    introduced by commit 1e2e99f0.
    
    The clear_TF_reenable case that sets TIF_SINGLESTEP can only happen
    on a non-exception kernel entry, i.e. sysenter/syscall instruction.
    That will always get to the syscall exit tracing path.
    Signed-off-by: default avatarRoland McGrath <roland@redhat.com>
    64f09733
signal_64.c 13.4 KB