summaryrefslogtreecommitdiffstats
path: root/arch/x86/vdso/vma.c
diff options
context:
space:
mode:
authorAndy Lutomirski <luto@amacapital.net>2014-03-20 15:01:21 -0700
committerH. Peter Anvin <hpa@linux.intel.com>2014-03-20 15:19:14 -0700
commitb67e612cef1e5964efc6fa99fb7ad3d31c4db01a (patch)
treec037de472a7e20c143dc3ca05e3f9327dc917d09 /arch/x86/vdso/vma.c
parent4e40112c4ff6a577dd06d92b2a54cdf06265bf74 (diff)
downloadtalos-obmc-linux-b67e612cef1e5964efc6fa99fb7ad3d31c4db01a.tar.gz
talos-obmc-linux-b67e612cef1e5964efc6fa99fb7ad3d31c4db01a.zip
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.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/arch/x86/vdso/vma.c b/arch/x86/vdso/vma.c
index 7345bc9a1af6..6db0bbd876fd 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
OpenPOWER on IntegriCloud