linux/arch/um/kernel
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
..
skas [PATCH] uml: remove verify_area_{tt,skas} 2005-09-21 16:16:29 -07:00
tt [PATCH] uml: fix hang in TT mode on fault 2005-09-22 22:17:36 -07:00
asm-offsets.c kbuild: um fix so it compile with generic asm-offsets.h support 2005-09-09 23:10:54 +02:00
config.c.in Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dyn.lds.S [PATCH] i386 / uml: add dwarf sections to static link script 2005-09-10 12:00:17 -07:00
exec_kern.c [PATCH] uml: remove 2_5compat.h 2005-05-28 16:46:11 -07:00
exitcode.c [PATCH] uml: Clean up prink calls 2005-07-28 21:46:05 -07:00
gmon_syms.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gprof_syms.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
helper.c [PATCH] uml: preserve errno in error paths 2005-09-17 11:50:00 -07:00
init_task.c [PATCH] uml: move libc code out of mem_user.c and tempfile.c 2005-09-17 11:50:00 -07:00
initrd.c [PATCH] uml: initrd cleanup 2005-05-20 15:48:18 -07:00
irq_user.c [PATCH] uml: add and use generic hw_controller_type->release 2005-06-21 19:07:32 -07:00
irq.c [PATCH] uml: use host AIO support 2005-09-05 00:06:23 -07:00
ksyms.c [PATCH] uml: inline mk_pte and various friends 2005-09-10 12:00:18 -07:00
main.c [PATCH] uml: workaround GDB problems on debugging 2005-09-05 00:06:20 -07:00
Makefile [PATCH] uml: merge mem_user.c and mem.c 2005-09-17 11:50:00 -07:00
mem.c [PATCH] uml: merge mem_user.c and mem.c 2005-09-17 11:50:00 -07:00
physmem.c [PATCH] uml: inline mk_pte and various friends 2005-09-10 12:00:18 -07:00
process_kern.c [PATCH] uml: breakpoint an arbitrary thread 2005-09-17 11:49:59 -07:00
ptrace.c [PATCH] uml: fix a couple of warnings 2005-05-28 16:46:11 -07:00
reboot.c [PATCH] Don't export machine_restart, machine_halt, or machine_power_off. 2005-07-26 14:35:42 -07:00
resource.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sigio_kern.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sigio_user.c [PATCH] uml: Fix SIGWINCH relaying 2005-05-05 16:36:36 -07:00
signal_kern.c [PATCH] convert signal handling of NODEFER to act like other Unix boxes. 2005-08-29 10:03:11 -07:00
signal_user.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
smp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
syscall_kern.c [PATCH] uml: fork cleanup 2005-06-25 16:24:35 -07:00
syscall.c [PATCH] uml: system call path cleanup 2005-09-05 00:06:23 -07:00
sysrq.c [PATCH] uml: stack dump fix 2005-05-28 16:46:13 -07:00
time_kern.c [PATCH] uml: Fix load average >=1 2005-07-28 21:46:04 -07:00
time.c [PATCH] uml: Proper clone support for skas0 2005-07-07 18:23:44 -07:00
tlb.c [PATCH] uml: move libc code out of mem_user.c and tempfile.c 2005-09-17 11:50:00 -07:00
trap_kern.c [PATCH] uml: fix hang in TT mode on fault 2005-09-22 22:17:36 -07:00
trap_user.c [PATCH] uml: remove debugging code from page fault path 2005-09-05 00:06:19 -07:00
tty_log.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
uaccess_user.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
um_arch.c [PATCH] uml: move libc code out of mem_user.c and tempfile.c 2005-09-17 11:50:00 -07:00
umid.c [PATCH] strlcat: use for uml umid.c 2005-09-22 22:17:36 -07:00
uml.lds.S [PATCH] i386 / uml: add dwarf sections to static link script 2005-09-10 12:00:17 -07:00
user_util.c [PATCH] uml: fix uname output on 32-bit binary on 64-bit host 2005-09-21 16:16:30 -07:00
vmlinux.lds.S [PATCH] uml: include the linker script rather than symlink it 2005-05-05 16:36:33 -07:00