diff options
Diffstat (limited to 'arch/x86/xen/setup.c')
-rw-r--r-- | arch/x86/xen/setup.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index f84e77226646..3bad4773a2f3 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <linux/pm.h> | 10 | #include <linux/pm.h> |
11 | 11 | ||
12 | #include <asm/elf.h> | 12 | #include <asm/elf.h> |
13 | #include <asm/vdso.h> | ||
13 | #include <asm/e820.h> | 14 | #include <asm/e820.h> |
14 | #include <asm/setup.h> | 15 | #include <asm/setup.h> |
15 | #include <asm/xen/hypervisor.h> | 16 | #include <asm/xen/hypervisor.h> |
@@ -59,12 +60,10 @@ static void xen_idle(void) | |||
59 | /* | 60 | /* |
60 | * Set the bit indicating "nosegneg" library variants should be used. | 61 | * Set the bit indicating "nosegneg" library variants should be used. |
61 | */ | 62 | */ |
62 | static void fiddle_vdso(void) | 63 | static void __init fiddle_vdso(void) |
63 | { | 64 | { |
64 | extern u32 VDSO_NOTE_MASK; /* See ../kernel/vsyscall-note.S. */ | 65 | extern const char vdso32_default_start; |
65 | extern char vsyscall_int80_start; | 66 | u32 *mask = VDSO32_SYMBOL(&vdso32_default_start, NOTE_MASK); |
66 | u32 *mask = (u32 *) ((unsigned long) &VDSO_NOTE_MASK - VDSO_PRELINK + | ||
67 | &vsyscall_int80_start); | ||
68 | *mask |= 1 << VDSO_NOTE_NONEGSEG_BIT; | 67 | *mask |= 1 << VDSO_NOTE_NONEGSEG_BIT; |
69 | } | 68 | } |
70 | 69 | ||