aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/vdso
diff options
context:
space:
mode:
authorAndy Lutomirski <luto@amacapital.net>2014-05-05 15:19:32 -0400
committerH. Peter Anvin <hpa@linux.intel.com>2014-05-05 16:18:40 -0400
commit3d7ee969bffcc984c8aeaffc6ac6816fd929ace1 (patch)
tree7f365d4f40885740ac0007d030f890ec0b69fb85 /arch/x86/vdso
parent73159fdcdb9be3eda61b846864352c29371baeb6 (diff)
x86, vdso: Clean up 32-bit vs 64-bit vdso params
Rather than using 'vdso_enabled' and an awful #define, just call the parameters vdso32_enabled and vdso64_enabled. Signed-off-by: Andy Lutomirski <luto@amacapital.net> Link: http://lkml.kernel.org/r/87913de56bdcbae3d93917938302fc369b05caee.1399317206.git.luto@amacapital.net Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/vdso')
-rw-r--r--arch/x86/vdso/vdso32-setup.c19
-rw-r--r--arch/x86/vdso/vma.c6
2 files changed, 11 insertions, 14 deletions
diff --git a/arch/x86/vdso/vdso32-setup.c b/arch/x86/vdso/vdso32-setup.c
index 00348980a3a6..5a657d93c6e0 100644
--- a/arch/x86/vdso/vdso32-setup.c
+++ b/arch/x86/vdso/vdso32-setup.c
@@ -37,7 +37,6 @@
37#endif 37#endif
38 38
39#ifdef CONFIG_X86_64 39#ifdef CONFIG_X86_64
40#define vdso_enabled sysctl_vsyscall32
41#define arch_setup_additional_pages syscall32_setup_pages 40#define arch_setup_additional_pages syscall32_setup_pages
42#endif 41#endif
43 42
@@ -45,13 +44,13 @@
45 * Should the kernel map a VDSO page into processes and pass its 44 * Should the kernel map a VDSO page into processes and pass its
46 * address down to glibc upon exec()? 45 * address down to glibc upon exec()?
47 */ 46 */
48unsigned int __read_mostly vdso_enabled = VDSO_DEFAULT; 47unsigned int __read_mostly vdso32_enabled = VDSO_DEFAULT;
49 48
50static int __init vdso_setup(char *s) 49static int __init vdso32_setup(char *s)
51{ 50{
52 vdso_enabled = simple_strtoul(s, NULL, 0); 51 vdso32_enabled = simple_strtoul(s, NULL, 0);
53 52
54 if (vdso_enabled > 1) 53 if (vdso32_enabled > 1)
55 pr_warn("vdso32 values other than 0 and 1 are no longer allowed; vdso disabled\n"); 54 pr_warn("vdso32 values other than 0 and 1 are no longer allowed; vdso disabled\n");
56 55
57 return 1; 56 return 1;
@@ -62,12 +61,10 @@ static int __init vdso_setup(char *s)
62 * behavior on both 64-bit and 32-bit kernels. 61 * behavior on both 64-bit and 32-bit kernels.
63 * On 32-bit kernels, vdso=[012] means the same thing. 62 * On 32-bit kernels, vdso=[012] means the same thing.
64 */ 63 */
65__setup("vdso32=", vdso_setup); 64__setup("vdso32=", vdso32_setup);
66 65
67#ifdef CONFIG_X86_32 66#ifdef CONFIG_X86_32
68__setup_param("vdso=", vdso32_setup, vdso_setup, 0); 67__setup_param("vdso=", vdso_setup, vdso32_setup, 0);
69
70EXPORT_SYMBOL_GPL(vdso_enabled);
71#endif 68#endif
72 69
73static struct page **vdso32_pages; 70static struct page **vdso32_pages;
@@ -160,7 +157,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
160 return x32_setup_additional_pages(bprm, uses_interp); 157 return x32_setup_additional_pages(bprm, uses_interp);
161#endif 158#endif
162 159
163 if (vdso_enabled != 1) /* Other values all mean "disabled" */ 160 if (vdso32_enabled != 1) /* Other values all mean "disabled" */
164 return 0; 161 return 0;
165 162
166 down_write(&mm->mmap_sem); 163 down_write(&mm->mmap_sem);
@@ -244,7 +241,7 @@ subsys_initcall(sysenter_setup);
244static struct ctl_table abi_table2[] = { 241static struct ctl_table abi_table2[] = {
245 { 242 {
246 .procname = "vsyscall32", 243 .procname = "vsyscall32",
247 .data = &sysctl_vsyscall32, 244 .data = &vdso32_enabled,
248 .maxlen = sizeof(int), 245 .maxlen = sizeof(int),
249 .mode = 0644, 246 .mode = 0644,
250 .proc_handler = proc_dointvec 247 .proc_handler = proc_dointvec
diff --git a/arch/x86/vdso/vma.c b/arch/x86/vdso/vma.c
index 1ad102613127..8b790398ed1d 100644
--- a/arch/x86/vdso/vma.c
+++ b/arch/x86/vdso/vma.c
@@ -17,7 +17,7 @@
17#include <asm/page.h> 17#include <asm/page.h>
18 18
19#if defined(CONFIG_X86_64) 19#if defined(CONFIG_X86_64)
20unsigned int __read_mostly vdso_enabled = 1; 20unsigned int __read_mostly vdso64_enabled = 1;
21 21
22DECLARE_VDSO_IMAGE(vdso); 22DECLARE_VDSO_IMAGE(vdso);
23extern unsigned short vdso_sync_cpuid; 23extern unsigned short vdso_sync_cpuid;
@@ -160,7 +160,7 @@ static int setup_additional_pages(struct linux_binprm *bprm,
160 unsigned long addr; 160 unsigned long addr;
161 int ret; 161 int ret;
162 162
163 if (!vdso_enabled) 163 if (!vdso64_enabled)
164 return 0; 164 return 0;
165 165
166 down_write(&mm->mmap_sem); 166 down_write(&mm->mmap_sem);
@@ -203,7 +203,7 @@ int x32_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
203 203
204static __init int vdso_setup(char *s) 204static __init int vdso_setup(char *s)
205{ 205{
206 vdso_enabled = simple_strtoul(s, NULL, 0); 206 vdso64_enabled = simple_strtoul(s, NULL, 0);
207 return 0; 207 return 0;
208} 208}
209__setup("vdso=", vdso_setup); 209__setup("vdso=", vdso_setup);