summaryrefslogtreecommitdiffstats
path: root/arch/um/sys-x86_64/vdso/vdso.S
diff options
context:
space:
mode:
authorRichard Weinberger <richard@nod.at>2011-07-25 17:12:54 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2011-07-25 20:57:13 -0700
commitf1c2bb8b9964ed31de988910f8b1cfb586d30091 (patch)
treeccf58acd47dbf659dca3087b7ebf2704ffd14aba /arch/um/sys-x86_64/vdso/vdso.S
parentfc9a00187ba1300a0baae8e613cc62598e1a7de7 (diff)
downloadtalos-op-linux-f1c2bb8b9964ed31de988910f8b1cfb586d30091.tar.gz
talos-op-linux-f1c2bb8b9964ed31de988910f8b1cfb586d30091.zip
um: implement a x86_64 vDSO
Until now UML had no x86_64 vDSO. So glibc always used the vsyscall page for gettimeday() and friends. Calls to gettimeday() returned falsely the host time and confused some programs. This patch adds a vDSO which turns all __vdso_* calls into a system call so that UML can trap them. As glibc still uses the vsyscall page for static binaries this patch improves the situation only for dynamic binaries. Signed-off-by: Richard Weinberger <richard@nod.at> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/um/sys-x86_64/vdso/vdso.S')
-rw-r--r--arch/um/sys-x86_64/vdso/vdso.S10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/um/sys-x86_64/vdso/vdso.S b/arch/um/sys-x86_64/vdso/vdso.S
new file mode 100644
index 000000000000..ec82c1686bd6
--- /dev/null
+++ b/arch/um/sys-x86_64/vdso/vdso.S
@@ -0,0 +1,10 @@
+#include <linux/init.h>
+
+__INITDATA
+
+ .globl vdso_start, vdso_end
+vdso_start:
+ .incbin "arch/um/sys-x86_64/vdso/vdso.so"
+vdso_end:
+
+__FINIT
OpenPOWER on IntegriCloud