[EMAIL PROTECTED] writes:
> With the latest kernel, "crashme +2000.4 3208 200" causes a complete lock-up
> almost immediately (with no diagnostics printed) on my CATS and NetWinder. I
> don't really have time to dig into this at the moment unfortunately but maybe
> someone else would like to take a look.
Ok, I now don't think that my current 2.2.7 is being over-eager to forcefully
kill the process. My kernel is doing the correct thing:
1) user SP is being corrupted by pointing at a non-word offset into
an invalid vma region.
2) The SEGV signal handler is invoked by the process. However, just
before building the signal stack frame, the kernel finds that the
stack pointer is invalid.
3) Since the kernel is therefore unable to deliver the signal to the
process, it's only solution is to forcefully cause the process to
exit. It cannot send another signal to the process, since then
you will have an infinite loop.
There is one way around this - crashme should be using signal stacks to prevent
this situation from occuring. ie, it's a bug in crashme causing it not to be
able to continue from this point.
However, as to your total system lockup, I still can not reproduce this.
I did find one thing in the code - it was possible for a user process to
disable FIQs and IRQs. This has been fixed in my tree, which should be
available this weekend.
_____
|_____| ------------------------------------------------- ---+---+-
| | Russell King [EMAIL PROTECTED] --- ---
| | | | http://www.arm.linux.org.uk/~rmk/armlinux.html / / |
| +-+-+ --- -+-
/ | THE developer of ARM Linux |+| /|\
/ | | | --- |
+-+-+ ------------------------------------------------- /\\\ |
unsubscribe: body of `unsubscribe linux-arm' to [EMAIL PROTECTED]