Commit b121dd4d authored by Kaixiong Yu's avatar Kaixiong Yu Committed by Joel Granados
Browse files

security: min_addr: move sysctl to security/min_addr.c



The dac_mmap_min_addr belongs to min_addr.c, move it to
min_addr.c from /kernel/sysctl.c. In the previous Linux kernel
boot process, sysctl_init_bases needs to be executed before
init_mmap_min_addr, So, register_sysctl_init should be executed
before update_mmap_min_addr in init_mmap_min_addr. And according
to the compilation condition in security/Makefile:

      obj-$(CONFIG_MMU)            += min_addr.o

if CONFIG_MMU is not defined, min_addr.c would not be included in the
compilation process. So, drop the CONFIG_MMU check.

Signed-off-by: default avatarKaixiong Yu <yukaixiong@huawei.com>
Reviewed-by: default avatarKees Cook <kees@kernel.org>
Acked-by: default avatarPaul Moore <paul@paul-moore.com>
Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
Signed-off-by: default avatarJoel Granados <joel.granados@kernel.org>
parent aacdde72
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -2049,15 +2049,6 @@ static const struct ctl_table vm_table[] = {
		.proc_handler	= proc_dointvec_minmax,
		.extra1		= SYSCTL_ZERO,
	},
#ifdef CONFIG_MMU
	{
		.procname	= "mmap_min_addr",
		.data		= &dac_mmap_min_addr,
		.maxlen		= sizeof(unsigned long),
		.mode		= 0644,
		.proc_handler	= mmap_min_addr_handler,
	},
#endif
#if (defined(CONFIG_X86_32) && !defined(CONFIG_UML))|| \
   (defined(CONFIG_SUPERH) && defined(CONFIG_VSYSCALL))
	{
+11 −0
Original line number Diff line number Diff line
@@ -44,8 +44,19 @@ int mmap_min_addr_handler(const struct ctl_table *table, int write,
	return ret;
}

static const struct ctl_table min_addr_sysctl_table[] = {
	{
		.procname	= "mmap_min_addr",
		.data		= &dac_mmap_min_addr,
		.maxlen		= sizeof(unsigned long),
		.mode		= 0644,
		.proc_handler	= mmap_min_addr_handler,
	},
};

static int __init init_mmap_min_addr(void)
{
	register_sysctl_init("vm", min_addr_sysctl_table);
	update_mmap_min_addr();

	return 0;