Re: [patch] i386, vdso=[0|1] boot option and /proc/sys/vm/vdso_enabled

From: Zachary Amsden
Date: Sat May 20 2006 - 05:34:46 EST


Andrew Morton wrote:
vmm:/home/akpm# echo 1 > /proc/sys/vm/vdso_enabled vmm:/home/akpm# vmm:/home/akpm> ls -l
zsh: segmentation fault ls -l

That could tell us whether it's an init bug or a glibc bug.

It tells us neither. This could be a new kernel bug which only certain old
userspace setups are known to trigger. Until we know exactly why this is
occurring, we don't know where the bug is.

And once we've worked that thing out, and if we determine that the bug is
in userspace then we might be able to craft the patch in such a fashion
that the old userspace continues to work, which would be a win.

Please try my patch - sent earlier, but attached again. It will tell you with 100% confidence if the problem is with userspace expecting the vsyscall page to be at a particular address.
Index: linux-2.6.17-rc/include/asm-i386/fixmap.h
===================================================================
--- linux-2.6.17-rc.orig/include/asm-i386/fixmap.h 2006-03-19 21:53:29.000000000 -0800
+++ linux-2.6.17-rc/include/asm-i386/fixmap.h 2006-05-19 18:16:00.000000000 -0700
@@ -20,7 +20,7 @@
* Leave one empty page between vmalloc'ed areas and
* the start of the fixmap.
*/
-#define __FIXADDR_TOP 0xfffff000
+#define __FIXADDR_TOP 0xffbff000

#ifndef __ASSEMBLY__
#include <linux/kernel.h>