diff options
author | Andy Lutomirski <luto@amacapital.net> | 2014-03-20 22:01:21 (GMT) |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2014-03-20 22:19:14 (GMT) |
commit | b67e612cef1e5964efc6fa99fb7ad3d31c4db01a (patch) | |
tree | c037de472a7e20c143dc3ca05e3f9327dc917d09 /arch/x86/vdso/vma.c | |
parent | 4e40112c4ff6a577dd06d92b2a54cdf06265bf74 (diff) | |
download | linux-b67e612cef1e5964efc6fa99fb7ad3d31c4db01a.tar.xz |
x86: Load the 32-bit vdso in place, just like the 64-bit vdsos
This replaces a decent amount of incomprehensible and buggy code
with much more straightforward code. It also brings the 32-bit vdso
more in line with the 64-bit vdsos, so maybe someday they can share
even more code.
This wastes a small amount of kernel .data and .text space, but it
avoids a couple of allocations on startup, so it should be more or
less a wash memory-wise.
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
Cc: Stefani Seibold <stefani@seibold.net>
Link: http://lkml.kernel.org/r/b8093933fad09ce181edb08a61dcd5d2592e9814.1395352498.git.luto@amacapital.net
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/vdso/vma.c')
-rw-r--r-- | arch/x86/vdso/vma.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/arch/x86/vdso/vma.c b/arch/x86/vdso/vma.c index 7345bc9..6db0bbd 100644 --- a/arch/x86/vdso/vma.c +++ b/arch/x86/vdso/vma.c @@ -15,19 +15,17 @@ #include <asm/proto.h> #include <asm/vdso.h> #include <asm/page.h> +#include "vdso_image.h" #if defined(CONFIG_X86_64) unsigned int __read_mostly vdso_enabled = 1; -extern char vdso_start[], vdso_end[]; +DECLARE_VDSO_IMAGE(vdso); extern unsigned short vdso_sync_cpuid; - -extern struct page *vdso_pages[]; static unsigned vdso_size; #ifdef CONFIG_X86_X32_ABI -extern char vdsox32_start[], vdsox32_end[]; -extern struct page *vdsox32_pages[]; +DECLARE_VDSO_IMAGE(vdsox32); static unsigned vdsox32_size; #endif #endif |