Commit:     22c5ace7290b792faf64ffe90cf933950fbf52db
Parent:     98838ec984b78c625bbf9a5daaf001cd216b8f86
Author:     Jan Beulich <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 13 13:26:26 2007 +0100
Committer:  Andi Kleen <[EMAIL PROTECTED]>
CommitDate: Tue Feb 13 13:26:26 2007 +0100

    [PATCH] i386: Fix broken 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
    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
    Signed-off-by: Jan Beulich <[EMAIL PROTECTED]>
    Signed-off-by: Andi Kleen <[EMAIL PROTECTED]>
 arch/i386/kernel/sysenter.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/i386/kernel/sysenter.c b/arch/i386/kernel/sysenter.c
index bc882a2..13ca54a 100644
--- a/arch/i386/kernel/sysenter.c
+++ b/arch/i386/kernel/sysenter.c
@@ -78,7 +78,7 @@ int __init sysenter_setup(void)
        syscall_pages[0] = virt_to_page(syscall_page);
-       __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 git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to