From: Jeff Dike <jdike@addtoit.com>
To: akpm@osdl.org
Cc: "Christopher S. Aker" <caker@linode.com>,
Sapan Bhatia <sapanb@CS.Princeton.EDU>,
linux-kernel@vger.kernel.org,
user-mode-linux@lists.sourceforge.net
Subject: [PATCH 2/3] UML - Host VDSO fix
Date: Tue, 20 Feb 2007 11:56:37 -0500 [thread overview]
Message-ID: <20070220165637.GA6250@ccure.user-mode-linux.org> (raw)
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>
--
arch/um/os-Linux/elf_aux.c | 3 +++
1 file changed, 3 insertions(+)
Index: linux-2.6.17/arch/um/os-Linux/elf_aux.c
===================================================================
--- linux-2.6.17.orig/arch/um/os-Linux/elf_aux.c 2006-06-17 21:49:35.000000000 -0400
+++ linux-2.6.17/arch/um/os-Linux/elf_aux.c 2007-02-20 10:57:52.000000000 -0500
@@ -40,6 +40,9 @@ __init void scan_elf_aux( char **envp)
switch ( auxv->a_type ) {
case AT_SYSINFO:
__kernel_vsyscall = auxv->a_un.a_val;
+ /* See if the page is under TASK_SIZE */
+ if (__kernel_vsyscall < (unsigned long) envp)
+ __kernel_vsyscall = 0;
break;
case AT_SYSINFO_EHDR:
vsyscall_ehdr = auxv->a_un.a_val;
--
Work email - jdike at linux dot intel dot com
reply other threads:[~2007-02-20 17:05 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070220165637.GA6250@ccure.user-mode-linux.org \
--to=jdike@addtoit.com \
--cc=akpm@osdl.org \
--cc=caker@linode.com \
--cc=linux-kernel@vger.kernel.org \
--cc=sapanb@CS.Princeton.EDU \
--cc=user-mode-linux@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.