Looks like Jeff found the problem:
Quote:
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);
This problem exists in both 2.4 and 2.6 UML kernels. I'll try to compile new kernels this evening.
-Chris