Re: [PATCH v4 -next 14/15] sh: vdso: move the sysctl to arch/sh/kernel/vsyscall/vsyscall.c
From: Joel Granados <joel.granados@kernel.org>
Date: 2025-01-06 11:59:30
Also in:
linux-fsdevel, linux-mm, linux-nfs, linux-security-module, linux-sh, lkml
On Sat, Dec 28, 2024 at 10:57:45PM +0800, Kaixiong Yu wrote:
quoted hunk ↗ jump to hunk
When CONFIG_SUPERH and CONFIG_VSYSCALL are defined, vdso_enabled belongs to arch/sh/kernel/vsyscall/vsyscall.c. So, move it into its own file. After this patch is applied, all sysctls of vm_table would be moved. So, delete vm_table. Signed-off-by: Kaixiong Yu <redacted> Reviewed-by: Kees Cook <kees@kernel.org> --- v4: - const qualify struct ctl_table vdso_table v3: - change the title --- --- arch/sh/kernel/vsyscall/vsyscall.c | 14 ++++++++++++++ kernel/sysctl.c | 14 -------------- 2 files changed, 14 insertions(+), 14 deletions(-)diff --git a/arch/sh/kernel/vsyscall/vsyscall.c b/arch/sh/kernel/vsyscall/vsyscall.c index add35c51e017..898132f34e6a 100644 --- a/arch/sh/kernel/vsyscall/vsyscall.c +++ b/arch/sh/kernel/vsyscall/vsyscall.c@@ -14,6 +14,7 @@ #include <linux/module.h> #include <linux/elf.h> #include <linux/sched.h> +#include <linux/sysctl.h> #include <linux/err.h> /*@@ -30,6 +31,17 @@ static int __init vdso_setup(char *s) } __setup("vdso=", vdso_setup); +static const struct ctl_table vdso_table[] = { + { + .procname = "vdso_enabled", + .data = &vdso_enabled, + .maxlen = sizeof(vdso_enabled), + .mode = 0644, + .proc_handler = proc_dointvec, + .extra1 = SYSCTL_ZERO, + }, +}; + /* * These symbols are defined by vsyscall.o to mark the bounds * of the ELF DSO images included therein.@@ -55,6 +67,8 @@ int __init vsyscall_init(void) &vsyscall_trapa_start, &vsyscall_trapa_end - &vsyscall_trapa_start); + register_sysctl_init("vm", vdso_table); + return 0; }diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 7ff07b7560b4..cebd0ef5d19d 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c@@ -2012,23 +2012,9 @@ static struct ctl_table kern_table[] = { #endif };
As you mentioned in the commit message, this patch has two objectives. 1. It moves the vdso_enabled table and 2. It removes the vm_table. Please separate these two in such a way that the second (removal of vm_table) can be done at the end and is not related to any particular table under vm_table. I prefer it that way so that the removal of vm_table does not block the upstreaming of a move that is already reviewed and ready.
-static struct ctl_table vm_table[] = {
-#if defined(CONFIG_SUPERH) && defined(CONFIG_VSYSCALL)
- {
- .procname = "vdso_enabled",
- .data = &vdso_enabled,
- .maxlen = sizeof(vdso_enabled),
- .mode = 0644,
- .proc_handler = proc_dointvec,
- .extra1 = SYSCTL_ZERO,
- },
-#endif
-};
-
int __init sysctl_init_bases(void)
{
register_sysctl_init("kernel", kern_table);
- register_sysctl_init("vm", vm_table);
return 0;
}
--
2.34.1-- Joel Granados