summaryrefslogtreecommitdiffstats
path: root/arch/x86/vdso/vdso.S
diff options
context:
space:
mode:
authorAndy Lutomirski <luto@mit.edu>2011-07-21 15:47:10 -0400
committerH. Peter Anvin <hpa@zytor.com>2011-07-21 13:41:53 -0700
commitaafade242ff24fac3aabf61c7861dfa44a3c2445 (patch)
treee28352a5883b5684466ea44f3caebe99c088eaf7 /arch/x86/vdso/vdso.S
parentae7bd11b471931752e5609094ca0a49386590524 (diff)
downloadlinux-aafade242ff24fac3aabf61c7861dfa44a3c2445.tar.bz2
x86-64, vdso: Do not allocate memory for the vDSO
We can map the vDSO straight from kernel data, saving a few page allocations. As an added bonus, the deleted code contained a memory leak. Signed-off-by: Andy Lutomirski <luto@mit.edu> Link: http://lkml.kernel.org/r/2c4ed5c2c2e93603790229e0c3403ae506ccc0cb.1311277573.git.luto@mit.edu Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/vdso/vdso.S')
-rw-r--r--arch/x86/vdso/vdso.S15
1 files changed, 13 insertions, 2 deletions
diff --git a/arch/x86/vdso/vdso.S b/arch/x86/vdso/vdso.S
index 1d3aa6b87181..1b979c12ba85 100644
--- a/arch/x86/vdso/vdso.S
+++ b/arch/x86/vdso/vdso.S
@@ -1,10 +1,21 @@
+#include <asm/page_types.h>
+#include <linux/linkage.h>
#include <linux/init.h>
-__INITDATA
+__PAGE_ALIGNED_DATA
.globl vdso_start, vdso_end
+ .align PAGE_SIZE
vdso_start:
.incbin "arch/x86/vdso/vdso.so"
vdso_end:
-__FINIT
+.previous
+
+ .globl vdso_pages
+ .bss
+ .align 8
+ .type vdso_pages, @object
+vdso_pages:
+ .zero (vdso_end - vdso_start + PAGE_SIZE - 1) / PAGE_SIZE * 8
+ .size vdso_pages, .-vdso_pages