From: Jeff D. <jd...@ad...> - 2005-01-18 19:06:02
|
It turns out that caker's crashes were being caused by the lack of SA_NODEFER in the SIGSEGV handler registration. I know I fixed this, and I have no idea where the fix went. Do you have any clue what happened to it? Patch below... Jeff Index: 2.6.10/arch/um/kernel/process.c =================================================================== --- 2.6.10.orig/arch/um/kernel/process.c 2005-01-17 12:27:47.000000000 -0500 +++ 2.6.10/arch/um/kernel/process.c 2005-01-18 13:55:28.000000000 -0500 @@ -60,7 +60,10 @@ { int flags = altstack ? SA_ONSTACK : 0; - set_handler(SIGSEGV, (__sighandler_t) sig_handler, flags, + /* SIGSEGV needs to be SA_NODEFER because segfaults can happen while + * the segfault handler is on the stack. + */ + set_handler(SIGSEGV, (__sighandler_t) sig_handler, flags | SA_NODEFER, SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1); set_handler(SIGTRAP, (__sighandler_t) sig_handler, flags, SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1); |