Merge branch 'x86/vdso' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip...
[firefly-linux-kernel-4.4.55.git] / arch / x86 / xen / setup.c
index 210426a26cc0d92f9722ec297466bccbbf232982..821a11ada590fc516a48cee72a6adfbe3ff76015 100644 (file)
@@ -525,10 +525,17 @@ char * __init xen_memory_setup(void)
 static void __init fiddle_vdso(void)
 {
 #ifdef CONFIG_X86_32
+       /*
+        * This could be called before selected_vdso32 is initialized, so
+        * just fiddle with both possible images.  vdso_image_32_syscall
+        * can't be selected, since it only exists on 64-bit systems.
+        */
        u32 *mask;
-       mask = VDSO32_SYMBOL(&vdso32_int80_start, NOTE_MASK);
+       mask = vdso_image_32_int80.data +
+               vdso_image_32_int80.sym_VDSO32_NOTE_MASK;
        *mask |= 1 << VDSO_NOTE_NONEGSEG_BIT;
-       mask = VDSO32_SYMBOL(&vdso32_sysenter_start, NOTE_MASK);
+       mask = vdso_image_32_sysenter.data +
+               vdso_image_32_sysenter.sym_VDSO32_NOTE_MASK;
        *mask |= 1 << VDSO_NOTE_NONEGSEG_BIT;
 #endif
 }