Merge branch 'stable-3.2' into pandora-3.2
[pandora-kernel.git] / arch / x86 / kernel / vsyscall_64.c
index e4d4a22..3178f30 100644 (file)
@@ -58,6 +58,7 @@ DEFINE_VVAR(struct vsyscall_gtod_data, vsyscall_gtod_data) =
 };
 
 static enum { EMULATE, NATIVE, NONE } vsyscall_mode = NATIVE;
+unsigned long vsyscall_pgprot = __PAGE_KERNEL_VSYSCALL;
 
 static int __init vsyscall_setup(char *str)
 {
@@ -274,10 +275,10 @@ void __init map_vsyscall(void)
        extern char __vvar_page;
        unsigned long physaddr_vvar_page = __pa_symbol(&__vvar_page);
 
+       if (vsyscall_mode != NATIVE)
+               vsyscall_pgprot = __PAGE_KERNEL_VVAR;
        __set_fixmap(VSYSCALL_FIRST_PAGE, physaddr_vsyscall,
-                    vsyscall_mode == NATIVE
-                    ? PAGE_KERNEL_VSYSCALL
-                    : PAGE_KERNEL_VVAR);
+                    __pgprot(vsyscall_pgprot));
        BUILD_BUG_ON((unsigned long)__fix_to_virt(VSYSCALL_FIRST_PAGE) !=
                     (unsigned long)VSYSCALL_START);