diff options
author | Kaixiong Yu <yukaixiong@huawei.com> | 2025-01-11 15:07:48 +0800 |
---|---|---|
committer | Joel Granados <joel.granados@kernel.org> | 2025-02-07 16:53:04 +0100 |
commit | a33e288147d549347484f95134cee012d757cc6f (patch) | |
tree | d45f97c01b4c0dfc296c9a7f1c8e8fa1be31dd4b /kernel/sysctl.c | |
parent | 52e66823e0bea9adbe3e16075b5d76867ca695aa (diff) |
x86: vdso: move the sysctl to arch/x86/entry/vdso/vdso32-setup.c
When CONFIG_X86_32 is defined and CONFIG_UML is not defined,
vdso_enabled belongs to arch/x86/entry/vdso/vdso32-setup.c.
So, move it into its own file.
Before this patch, vdso_enabled was allowed to be set to
a value exceeding 1 on x86_32 architecture. After this patch is
applied, vdso_enabled is not permitted to set the value more than 1.
It does not matter, because according to the function load_vdso32(),
only vdso_enabled is set to 1, VDSO would be enabled. Other values
all mean "disabled". The same limitation could be seen in the
function vdso32_setup().
Signed-off-by: Kaixiong Yu <yukaixiong@huawei.com>
Reviewed-by: Kees Cook <kees@kernel.org>
Signed-off-by: Joel Granados <joel.granados@kernel.org>
Diffstat (limited to 'kernel/sysctl.c')
-rw-r--r-- | kernel/sysctl.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 7e345c7148a1..c4833a555bd2 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -2013,17 +2013,11 @@ static const struct ctl_table kern_table[] = { }; static const struct ctl_table vm_table[] = { -#if (defined(CONFIG_X86_32) && !defined(CONFIG_UML))|| \ - (defined(CONFIG_SUPERH) && defined(CONFIG_VSYSCALL)) +#if defined(CONFIG_SUPERH) && defined(CONFIG_VSYSCALL) { .procname = "vdso_enabled", -#ifdef CONFIG_X86_32 - .data = &vdso32_enabled, - .maxlen = sizeof(vdso32_enabled), -#else .data = &vdso_enabled, .maxlen = sizeof(vdso_enabled), -#endif .mode = 0644, .proc_handler = proc_dointvec, .extra1 = SYSCTL_ZERO, |