[lkml]   [2007]   [Feb]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
Subjectbroken CONFIG_COMPAT_VDSO on i386
After updating several machines to 2.6.20, I can't boot  anymore the single
one of them that supports the NX bit and is configured as a 32-bit system.

My understanding is that the VDSO changes in 2.6.20-rc7 were not fully
cooked, in that with that config option enabled VDSO_SYM(x) now equals
x, meaning that an address in the fixmap area is now being passed to
apps via AT_SYSINFO. However, the page is mapped with PAGE_READONLY

I'm not certain whether having app code go through the fixmap area is
intended, but in case it is here is the simple patch that makes things work

Signed-off-by: Jan Beulich <>

--- linux-2.6.20/arch/i386/kernel/sysenter.c 2007-02-04 19:44:54.000000000 +0100
+++ 2.6.20/arch/i386/kernel/sysenter.c 2007-02-12 16:01:29.000000000 +0100
@@ -77,7 +77,7 @@ int __init sysenter_setup(void)
syscall_page = (void *)get_zeroed_page(GFP_ATOMIC);

- __set_fixmap(FIX_VDSO, __pa(syscall_page), PAGE_READONLY);
+ __set_fixmap(FIX_VDSO, __pa(syscall_page), PAGE_READONLY_EXEC);
printk("Compat vDSO mapped to %08lx.\n", __fix_to_virt(FIX_VDSO));

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2007-02-12 16:09    [W:0.032 / U:0.252 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site