diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-09-16 00:36:41 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-09-16 00:36:41 +0200 |
commit | 97c4a07df982ee967705022feaba9be33947abf0 (patch) | |
tree | e4f47e0b68cc04695473b9b8aa0b17bb7f1511df /src/kmod-setup.c | |
parent | 8e12a6aed3d99ac8c140cd56b560f5efeb1c4e1a (diff) |
vconsole: add new utility to initialize the virtual console
Diffstat (limited to 'src/kmod-setup.c')
-rw-r--r-- | src/kmod-setup.c | 25 |
1 files changed, 3 insertions, 22 deletions
diff --git a/src/kmod-setup.c b/src/kmod-setup.c index 44d843db12..97b7c870b1 100644 --- a/src/kmod-setup.c +++ b/src/kmod-setup.c @@ -42,7 +42,6 @@ int kmod_setup(void) { ExecContext context; pid_t pid; int r; - siginfo_t status; for (i = 0; i < ELEMENTSOF(kmod_table); i += 2) { @@ -74,28 +73,10 @@ int kmod_setup(void) { r = exec_spawn(&command, NULL, &context, NULL, 0, NULL, false, false, false, false, NULL, &pid); exec_context_done(&context); - if (r < 0) + if (r < 0) { + log_error("Failed to spawn %s: %s", cmdline[0], strerror(-r)); return r; - - if ((r = wait_for_terminate(pid, &status)) < 0) - return -errno; - - if (status.si_code == CLD_EXITED) { - if (status.si_status != 0) { - log_warning("/sbin/modprobe failed with error code %i.", status.si_status); - return -EPROTO; - } - - log_debug("/sbin/modprobe succeeded."); - return 0; - - } else if (status.si_code == CLD_KILLED || - status.si_code == CLD_DUMPED) { - - log_warning("/sbin/modprobe terminated by signal %s.", signal_to_string(status.si_status)); - return -EPROTO; } - log_warning("/sbin/modprobe failed due to unknown reason."); - return -EPROTO; + return wait_for_terminate_and_warn(cmdline[0], pid); } |