• Jeff Dike's avatar
    uml: simplify SIGSEGV handling · ee3d9bd4
    Jeff Dike authored
    Simplify the page fault stub by not masking signals while it is running.  This
    allows it to signal that it is done by executing an instruction which will
    generate a SIGTRAP (int3 on x86) rather than running sigreturn by hand after
    queueing a blocked SIGUSR1.
    
    userspace_tramp now no longer puts anything in the SIGSEGV sa_mask, but it
    does add SA_NODEFER to sa_flags so that SIGSEGV is still enabled after the
    signal handler fails to run sigreturn.
    
    SIGWINCH is just blocked so that we don't have to deal with it and the signal
    masks used by wait_stub_done are updated to reflect the smaller number of
    signals that it has to worry about.
    Signed-off-by: default avatarJeff Dike <jdike@linux.intel.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    ee3d9bd4
stub_segv.c 504 Bytes