linux/arch/um/kernel/tt
Paolo 'Blaisorblade' Giarrusso 546fe1cbf9 [PATCH] uml: fix hang in TT mode on fault
The current code doesn't handle well general protection faults on the host -
it thinks that cr2 is always the address of a page fault.  While actually, on
general protection faults, that address is not accessible, so we'd better
assume we couldn't satisfy the fault.  Currently instead we think we've fixed
it, so we go back, retry the instruction and fault again endlessly.

This leads to the kernel hanging when doing copy_from_user(dest, -1, ...) in
TT mode, since reading *(-1) causes a GFP, and we don't support kernel
preemption.

Thanks to Luo Xin for testing UML with LTP and reporting the failures he got.

Cc: Luo Xin <luothing@sina.com>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-22 22:17:36 -07:00
..
include [PATCH] uml: remove verify_area_{tt,skas} 2005-09-21 16:16:29 -07:00
ptproxy Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile [PATCH] uml: time initialization tidying 2005-06-25 16:24:35 -07:00
exec_kern.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
exec_user.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gdb.c [PATCH] uml: hot-unplug code cleanup 2005-06-25 16:24:36 -07:00
gdb_kern.c [PATCH] uml: hot-unplug code cleanup 2005-06-25 16:24:36 -07:00
ksyms.c [PATCH] uml: Export clear_user_* 2005-05-20 15:48:18 -07:00
mem.c [PATCH] uml: Use CONFIG variable for address space size 2005-05-06 22:09:30 -07:00
mem_user.c [PATCH] uml: move libc code out of mem_user.c and tempfile.c 2005-09-17 11:50:00 -07:00
process_kern.c [PATCH] uml: fix compile warning after consolidation patch 2005-09-21 16:16:30 -07:00
syscall_kern.c [PATCH] uml: system call path cleanup 2005-09-05 00:06:23 -07:00
syscall_user.c [PATCH] uml: system call path cleanup 2005-09-05 00:06:23 -07:00
tlb.c [PATCH] uml: skas0 stubs now check system call return values 2005-09-05 00:06:24 -07:00
tracer.c [PATCH] uml: Fix SIGWINCH relaying 2005-05-05 16:36:36 -07:00
trap_user.c [PATCH] uml: S390 preparation, abstract host page fault data 2005-05-05 16:36:36 -07:00
uaccess.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
uaccess_user.c [PATCH] uml: fix hang in TT mode on fault 2005-09-22 22:17:36 -07:00