[PATCH v4 -next 14/15] sh: vdso: move the sysctl to arch/sh/kernel/vsyscall/vsyscall.c
yukaixiong
yukaixiong at huawei.com
Thu Jan 9 02:40:34 UTC 2025
On 2025/1/6 19:59, Joel Granados wrote:
> On Sat, Dec 28, 2024 at 10:57:45PM +0800, Kaixiong Yu wrote:
>> 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 <yukaixiong at huawei.com>
>> Reviewed-by: Kees Cook <kees at 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.
>
Thank you for your advice ! I will modify it in series patches v5.
>> -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
>>
More information about the Linux-security-module-archive
mailing list