aboutsummaryrefslogtreecommitdiff
path: root/arch/um/os-Linux/umid.c
diff options
context:
space:
mode:
authorJeff Dike <jdike@addtoit.com>2006-03-27 01:14:38 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-27 08:44:38 -0800
commit98c18238f146a9038098244d60a7d2b1f67ee790 (patch)
tree97149aafbc265e63cec55d37a655dabbbf64c232 /arch/um/os-Linux/umid.c
parent6c29256c5703ad7c3cf62276dbc38d802a05669e (diff)
[PATCH] uml: fix segfault on signal delivery
This fixes a process segfault where a signal was being delivered such that a new stack page needed to be allocated to hold the signal frame. This was tripping some logic in the page fault handler which wouldn't allocate the page if the faulting address was more that 32 bytes lower than the current stack pointer. Since a signal frame is greater than 32 bytes, this exercised that case. It's fixed by updating the SP in the pt_regs before starting to copy the signal frame. Since those are the registers that will be copied on to the stack, we have to be careful to put the original SP, not the new one which points to the signal frame, on the stack. Signed-off-by: Jeff Dike <jdike@addtoit.com> Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/um/os-Linux/umid.c')
0 files changed, 0 insertions, 0 deletions