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: Holger Schurig <hs4233@mail.mn-solutions.de> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
c7705f3449
commit
88f458e4b9
11
init/Kconfig
11
init/Kconfig
@@ -550,6 +550,17 @@ config SYSCTL_SYSCALL
|
|||||||
|
|
||||||
If unsure say Y here.
|
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
|
config KALLSYMS
|
||||||
bool "Load all symbols for debugging/ksymoops" if EMBEDDED
|
bool "Load all symbols for debugging/ksymoops" if EMBEDDED
|
||||||
default y
|
default y
|
||||||
|
@@ -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 \
|
hrtimer.o rwsem.o nsproxy.o srcu.o semaphore.o \
|
||||||
notifier.o ksysfs.o pm_qos_params.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-$(CONFIG_STACKTRACE) += stacktrace.o
|
||||||
obj-y += time/
|
obj-y += time/
|
||||||
obj-$(CONFIG_DEBUG_MUTEXES) += mutex-debug.o
|
obj-$(CONFIG_DEBUG_MUTEXES) += mutex-debug.o
|
||||||
|
@@ -1592,9 +1592,13 @@ static void sysctl_set_parent(struct ctl_table *parent, struct ctl_table *table)
|
|||||||
|
|
||||||
static __init int sysctl_init(void)
|
static __init int sysctl_init(void)
|
||||||
{
|
{
|
||||||
int err;
|
|
||||||
sysctl_set_parent(NULL, root_table);
|
sysctl_set_parent(NULL, root_table);
|
||||||
err = sysctl_check_table(current->nsproxy, root_table);
|
#ifdef CONFIG_SYSCTL_SYSCALL_CHECK
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
err = sysctl_check_table(current->nsproxy, root_table);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1721,10 +1725,12 @@ struct ctl_table_header *__register_sysctl_paths(
|
|||||||
header->unregistering = NULL;
|
header->unregistering = NULL;
|
||||||
header->root = root;
|
header->root = root;
|
||||||
sysctl_set_parent(NULL, header->ctl_table);
|
sysctl_set_parent(NULL, header->ctl_table);
|
||||||
|
#ifdef CONFIG_SYSCTL_SYSCALL_CHECK
|
||||||
if (sysctl_check_table(namespaces, header->ctl_table)) {
|
if (sysctl_check_table(namespaces, header->ctl_table)) {
|
||||||
kfree(header);
|
kfree(header);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
spin_lock(&sysctl_lock);
|
spin_lock(&sysctl_lock);
|
||||||
header_list = lookup_header_list(root, namespaces);
|
header_list = lookup_header_list(root, namespaces);
|
||||||
list_add_tail(&header->ctl_entry, header_list);
|
list_add_tail(&header->ctl_entry, header_list);
|
||||||
|
Reference in New Issue
Block a user