]> git.baikalelectronics.ru Git - kernel.git/commit
uml: simplify SIGSEGV handling
authorJeff Dike <jdike@addtoit.com>
Tue, 5 Feb 2008 06:30:56 +0000 (22:30 -0800)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 5 Feb 2008 17:44:28 +0000 (09:44 -0800)
commitd5d54b34980669c33f69471c0930477cf7e3917e
treef49369c9f941066bdb8bbb2b4fd9d40bf2fda292
parenta61d7a97802a7e8a49a9446f35d509fd405e24ce
uml: simplify SIGSEGV handling

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: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/um/os-Linux/skas/process.c
arch/um/sys-i386/stub_segv.c
arch/um/sys-x86_64/stub_segv.c