yep. have exactly that:

void initial_thread_cb_skas(void (*proc)(void *), void *arg)
{
   sigjmp_buf here;

   cb_proc = proc;
   cb_arg = arg;
   cb_back = &here;

   block_signals();
   if(sigsetjmp(here, 1) == 0)
       siglongjmp(initial_jmpbuf, 2);
   unblock_signals();

   cb_proc = NULL;
   cb_arg = NULL;
   cb_back = NULL;
}


Jeff Dike wrote:

[EMAIL PROTECTED] said:


actually - 2.4.26-3um looks like this already.



Yeah, if I had spent a bit more time looking at the stack, I would have noticed that the symptom was wrong for that patch. What's happening is that you are taking a timer interrupt while on the initial process stack, which can't be allowed because interrupts should only happen on a kernel stack.

Make sure your initial_thread_cb_skas (in arch/um/kernel/skas/process.c)
blocks signals like so:

        block_signals();
        if(sigsetjmp(here, 1) == 0)
                siglongjmp(initial_jmpbuf, 2);
        unblock_signals();

                                Jeff




-- db


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to