14251809b1
This fixes a problem seen by a number of people running UML on newer host kernels. init would hang with an infinite segfault loop. It turns out that the host kernel was providing a AT_SYSINFO_EHDR of 0xffffe000, which faked UML into believing that the host VDSO page could be reused. However, AT_SYSINFO pointed into the middle of the address space, and was unmapped as a result. Because UML was providing AT_SYSINFO_EHDR and AT_SYSINFO to its own processes, these would branch to nowhere when trying to use the VDSO. The fix is to also check the location of AT_SYSINFO when deciding whether to use the host's VDSO. Signed-off-by: Jeff Dike <jdike@addtoit.com> Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
drivers | ||
include | ||
skas | ||
sys-i386 | ||
sys-x86_64 | ||
Makefile | ||
aio.c | ||
elf_aux.c | ||
execvp.c | ||
file.c | ||
helper.c | ||
irq.c | ||
main.c | ||
mem.c | ||
process.c | ||
sigio.c | ||
signal.c | ||
start_up.c | ||
time.c | ||
tls.c | ||
trap.c | ||
tt.c | ||
tty.c | ||
tty_log.c | ||
uaccess.c | ||
umid.c | ||
user_syms.c | ||
util.c |