sh: vdso: move the sysctl to arch/sh/kernel/vsyscall/vsyscall.c
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. To avoid failure when registering the vdso_table, move the call to register_sysctl_init() into its own fs_initcall(). Signed-off-by: Kaixiong Yu <yukaixiong@huawei.com> Reviewed-by: Kees Cook <kees@kernel.org> Signed-off-by: Joel Granados <joel.granados@kernel.org>
This commit is contained in:
committed by
Joel Granados
parent
a33e288147
commit
f569ca4b14
@@ -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.
|
||||
@@ -58,6 +70,14 @@ int __init vsyscall_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __init vm_sysctl_init(void)
|
||||
{
|
||||
register_sysctl_init("vm", vdso_table);
|
||||
return 0;
|
||||
}
|
||||
|
||||
fs_initcall(vm_sysctl_init);
|
||||
|
||||
/* Setup a VMA at program startup for the vsyscall page */
|
||||
int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
|
||||
{
|
||||
|
||||
+1
-12
@@ -2012,18 +2012,7 @@ static const struct ctl_table kern_table[] = {
|
||||
#endif
|
||||
};
|
||||
|
||||
static const 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
|
||||
};
|
||||
static const struct ctl_table vm_table[] = {};
|
||||
|
||||
int __init sysctl_init_bases(void)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user