From e35af567900ec2a7abb17e09cc5b5641f7faafe7 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Sat, 31 Jan 2009 14:22:24 +0000 Subject: modutils-24: use xasprintf and xzalloc where appropriate, remove unreachanble code build system: correct some dependencies in config system init: convert one #if into if() - for Rob. function old new delta obj_string_patch 136 129 -7 bb_init_module_24 4759 4615 -144 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-151) Total: -151 bytes --- init/Config.in | 1 + init/init.c | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) (limited to 'init') diff --git a/init/Config.in b/init/Config.in index 6b5799fe3..395c9e2f3 100644 --- a/init/Config.in +++ b/init/Config.in @@ -32,6 +32,7 @@ config FEATURE_KILL_DELAY int "How long to wait between TERM and KILL (0 - send TERM only)" if FEATURE_KILL_REMOVED range 0 1024 default 0 + depends on FEATURE_KILL_REMOVED help With nonzero setting, init sends TERM, forks, child waits N seconds, sends KILL and exits. Setting it too high is unwise diff --git a/init/init.c b/init/init.c index 59d070950..ed01e71c0 100644 --- a/init/init.c +++ b/init/init.c @@ -780,16 +780,16 @@ static void reload_inittab(void) for (a = init_action_list; a; a = a->next) if (a->pid != 0) kill(a->pid, SIGTERM); -#if CONFIG_FEATURE_KILL_DELAY - /* NB: parent will wait in NOMMU case */ - if ((BB_MMU ? fork() : vfork()) == 0) { /* child */ - sleep(CONFIG_FEATURE_KILL_DELAY); - for (a = init_action_list; a; a = a->next) - if (a->pid != 0) - kill(a->pid, SIGKILL); - _exit(EXIT_SUCCESS); + if (CONFIG_FEATURE_KILL_DELAY) { + /* NB: parent will wait in NOMMU case */ + if ((BB_MMU ? fork() : vfork()) == 0) { /* child */ + sleep(CONFIG_FEATURE_KILL_DELAY); + for (a = init_action_list; a; a = a->next) + if (a->pid != 0) + kill(a->pid, SIGKILL); + _exit(EXIT_SUCCESS); + } } -#endif } /* Remove old and unused entries */ -- cgit v1.2.3