Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 88f458e4 authored by Holger Schurig's avatar Holger Schurig Committed by Linus Torvalds
Browse files

sysctl: allow embedded targets to disable sysctl_check.c



Disable sysctl_check.c for embedded targets. This saves about about 11 kB
in .text and another 11 kB in .data on a PXA255 embedded platform.

Signed-off-by: default avatarHolger Schurig <hs4233@mail.mn-solutions.de>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent c7705f34
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -550,6 +550,17 @@ config SYSCTL_SYSCALL

	  If unsure say Y here.

config SYSCTL_SYSCALL_CHECK
	bool "Sysctl checks" if EMBEDDED
	depends on SYSCTL_SYSCALL
	default y
	---help---
	  sys_sysctl uses binary paths that have been found challenging
	  to properly maintain and use. This enables checks that help
	  you to keep things correct.

	  If unsure say Y here.

config KALLSYMS
	 bool "Load all symbols for debugging/ksymoops" if EMBEDDED
	 default y
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ obj-y = sched.o fork.o exec_domain.o panic.o printk.o profile.o \
	    hrtimer.o rwsem.o nsproxy.o srcu.o semaphore.o \
	    notifier.o ksysfs.o pm_qos_params.o

obj-$(CONFIG_SYSCTL) += sysctl_check.o
obj-$(CONFIG_SYSCTL_SYSCALL_CHECK) += sysctl_check.o
obj-$(CONFIG_STACKTRACE) += stacktrace.o
obj-y += time/
obj-$(CONFIG_DEBUG_MUTEXES) += mutex-debug.o
+8 −2
Original line number Diff line number Diff line
@@ -1592,9 +1592,13 @@ static void sysctl_set_parent(struct ctl_table *parent, struct ctl_table *table)

static __init int sysctl_init(void)
{
	int err;
	sysctl_set_parent(NULL, root_table);
#ifdef CONFIG_SYSCTL_SYSCALL_CHECK
	{
		int err;
		err = sysctl_check_table(current->nsproxy, root_table);
	}
#endif
	return 0;
}

@@ -1721,10 +1725,12 @@ struct ctl_table_header *__register_sysctl_paths(
	header->unregistering = NULL;
	header->root = root;
	sysctl_set_parent(NULL, header->ctl_table);
#ifdef CONFIG_SYSCTL_SYSCALL_CHECK
	if (sysctl_check_table(namespaces, header->ctl_table)) {
		kfree(header);
		return NULL;
	}
#endif
	spin_lock(&sysctl_lock);
	header_list = lookup_header_list(root, namespaces);
	list_add_tail(&header->ctl_entry, header_list);