From 1581e7ddbdd97443a134e1a0cc9d81256baf77a4 Mon Sep 17 00:00:00 2001 From: Tetsuo Handa Date: Sat, 21 Feb 2009 20:40:50 +0900 Subject: TOMOYO: Do not call tomoyo_realpath_init unless registered. tomoyo_realpath_init() is unconditionally called by security_initcall(). But nobody will use realpath related functions if TOMOYO is not registered. So, let tomoyo_init() call tomoyo_realpath_init(). This patch saves 4KB of memory allocation if TOMOYO is not registered. Signed-off-by: Kentaro Takeda Signed-off-by: Tetsuo Handa Signed-off-by: Toshiharu Harada Signed-off-by: James Morris --- security/tomoyo/realpath.c | 7 +------ security/tomoyo/realpath.h | 3 +++ security/tomoyo/tomoyo.c | 1 + 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/security/tomoyo/realpath.c b/security/tomoyo/realpath.c index 5fd48d23a217..d47f16b844b2 100644 --- a/security/tomoyo/realpath.c +++ b/security/tomoyo/realpath.c @@ -371,10 +371,8 @@ const struct tomoyo_path_info *tomoyo_save_name(const char *name) /** * tomoyo_realpath_init - Initialize realpath related code. - * - * Returns 0. */ -static int __init tomoyo_realpath_init(void) +void __init tomoyo_realpath_init(void) { int i; @@ -388,11 +386,8 @@ static int __init tomoyo_realpath_init(void) if (tomoyo_find_domain(TOMOYO_ROOT_NAME) != &tomoyo_kernel_domain) panic("Can't register tomoyo_kernel_domain"); up_read(&tomoyo_domain_list_lock); - return 0; } -security_initcall(tomoyo_realpath_init); - /* Memory allocated for temporary purpose. */ static atomic_t tomoyo_dynamic_memory_size; diff --git a/security/tomoyo/realpath.h b/security/tomoyo/realpath.h index 0ea541fcb53c..7ec9fc9cbc07 100644 --- a/security/tomoyo/realpath.h +++ b/security/tomoyo/realpath.h @@ -60,4 +60,7 @@ int tomoyo_read_memory_counter(struct tomoyo_io_buffer *head); /* Set memory quota. */ int tomoyo_write_memory_quota(struct tomoyo_io_buffer *head); +/* Initialize realpath related code. */ +void __init tomoyo_realpath_init(void); + #endif /* !defined(_SECURITY_TOMOYO_REALPATH_H) */ diff --git a/security/tomoyo/tomoyo.c b/security/tomoyo/tomoyo.c index cc599b36a3a8..3eeeae12c4dc 100644 --- a/security/tomoyo/tomoyo.c +++ b/security/tomoyo/tomoyo.c @@ -287,6 +287,7 @@ static int __init tomoyo_init(void) panic("Failure registering TOMOYO Linux"); printk(KERN_INFO "TOMOYO Linux initialized\n"); cred->security = &tomoyo_kernel_domain; + tomoyo_realpath_init(); return 0; } -- cgit v1.2.3