summaryrefslogtreecommitdiff
path: root/arch/x86/vdso/vdso32-setup.c
diff options
context:
space:
mode:
authorH. J. Lu <hjl.tools@gmail.com>2012-02-19 23:38:06 +0400
committerH. Peter Anvin <hpa@zytor.com>2012-02-21 00:52:06 +0400
commit1a21d4e095ef720abf81299000afc038206d571b (patch)
tree8d64feea71f41f785521f66fecbd29c16b0cf63a /arch/x86/vdso/vdso32-setup.c
parent5fd92e65a68b813667bc8739f5fa463e5bfcd66d (diff)
downloadlinux-1a21d4e095ef720abf81299000afc038206d571b.tar.xz
x32: Add x32 VDSO support
Add support for the x32 VDSO. The x32 VDSO takes advantage of the similarity between the x86-64 and the x32 ABIs to contain the same content, only the container is different, as the x32 VDSO obviously is an x32 shared object. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/vdso/vdso32-setup.c')
-rw-r--r--arch/x86/vdso/vdso32-setup.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/x86/vdso/vdso32-setup.c b/arch/x86/vdso/vdso32-setup.c
index 468d591dde31..01b8a0df5e0e 100644
--- a/arch/x86/vdso/vdso32-setup.c
+++ b/arch/x86/vdso/vdso32-setup.c
@@ -317,6 +317,12 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
int ret = 0;
bool compat;
+#ifdef CONFIG_X86_X32_ABI
+ extern int x32_setup_additional_pages(struct linux_binprm *, int);
+ if (test_thread_flag(TIF_X32))
+ return x32_setup_additional_pages (bprm, uses_interp);
+#endif
+
if (vdso_enabled == VDSO_DISABLED)
return 0;