diff options
Diffstat (limited to 'arch/x86/ia32/ia32_binfmt.c')
-rw-r--r-- | arch/x86/ia32/ia32_binfmt.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/x86/ia32/ia32_binfmt.c b/arch/x86/ia32/ia32_binfmt.c index 55822d2cf053..e32974c3dd3b 100644 --- a/arch/x86/ia32/ia32_binfmt.c +++ b/arch/x86/ia32/ia32_binfmt.c | |||
@@ -26,7 +26,7 @@ | |||
26 | #include <asm/i387.h> | 26 | #include <asm/i387.h> |
27 | #include <asm/uaccess.h> | 27 | #include <asm/uaccess.h> |
28 | #include <asm/ia32.h> | 28 | #include <asm/ia32.h> |
29 | #include <asm/vsyscall32.h> | 29 | #include <asm/vdso.h> |
30 | 30 | ||
31 | #undef ELF_ARCH | 31 | #undef ELF_ARCH |
32 | #undef ELF_CLASS | 32 | #undef ELF_CLASS |
@@ -47,14 +47,13 @@ | |||
47 | #define AT_SYSINFO 32 | 47 | #define AT_SYSINFO 32 |
48 | #define AT_SYSINFO_EHDR 33 | 48 | #define AT_SYSINFO_EHDR 33 |
49 | 49 | ||
50 | int sysctl_vsyscall32 = 1; | 50 | extern int sysctl_vsyscall32; |
51 | 51 | ||
52 | #undef ARCH_DLINFO | 52 | #undef ARCH_DLINFO |
53 | #define ARCH_DLINFO do { \ | 53 | #define ARCH_DLINFO do { \ |
54 | if (sysctl_vsyscall32) { \ | 54 | if (sysctl_vsyscall32) { \ |
55 | current->mm->context.vdso = (void *)VSYSCALL32_BASE; \ | 55 | NEW_AUX_ENT(AT_SYSINFO, (u32)VDSO_ENTRY); \ |
56 | NEW_AUX_ENT(AT_SYSINFO, (u32)(u64)VSYSCALL32_VSYSCALL); \ | 56 | NEW_AUX_ENT(AT_SYSINFO_EHDR, (u32)VDSO_CURRENT_BASE); \ |
57 | NEW_AUX_ENT(AT_SYSINFO_EHDR, VSYSCALL32_BASE); \ | ||
58 | } \ | 57 | } \ |
59 | } while(0) | 58 | } while(0) |
60 | 59 | ||