LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* broken CONFIG_COMPAT_VDSO on i386
@ 2007-02-12 15:06 Jan Beulich
  0 siblings, 0 replies; only message in thread
From: Jan Beulich @ 2007-02-12 15:06 UTC (permalink / raw)
  To: linux-kernel

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
rather than PAGE_READONLY_EXEC.

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
again.

Signed-off-by: Jan Beulich <jbeulich@novell.com>

--- 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);
 
 #ifdef CONFIG_COMPAT_VDSO
-	__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));
 #endif
 



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-02-12 15:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-12 15:06 broken CONFIG_COMPAT_VDSO on i386 Jan Beulich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).