From: Franck Bui Date: Wed, 15 Sep 2021 07:13:12 +0000 (+0200) Subject: shutdown: introduce init_watchdog() X-Git-Tag: v250-rc1~670^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=484752e26ae48362b5234269315482a81058b471;p=thirdparty%2Fsystemd.git shutdown: introduce init_watchdog() No functional change. --- diff --git a/src/shutdown/shutdown.c b/src/shutdown/shutdown.c index 903977bcb14..7ad9930677d 100644 --- a/src/shutdown/shutdown.c +++ b/src/shutdown/shutdown.c @@ -307,10 +307,33 @@ static void bump_sysctl_printk_log_level(int min_level) { log_debug_errno(r, "Failed to bump kernel.printk to %i: %m", min_level + 1); } +static void init_watchdog(void) { + const char *s; + int r; + + s = getenv("WATCHDOG_DEVICE"); + if (s) { + r = watchdog_set_device(s); + if (r < 0) + log_warning_errno(r, "Failed to set watchdog device to %s, ignoring: %m", s); + } + + s = getenv("WATCHDOG_USEC"); + if (s) { + usec_t usec; + + r = safe_atou64(s, &usec); + if (r < 0) + log_warning_errno(r, "Failed to parse watchdog timeout '%s', ignoring: %m", s); + else + (void) watchdog_setup(usec); + } +} + int main(int argc, char *argv[]) { bool need_umount, need_swapoff, need_loop_detach, need_dm_detach, need_md_detach, in_container, can_initrd; _cleanup_free_ char *cgroup = NULL; - char *arguments[3], *watchdog_device, *watchdog_usec; + char *arguments[3]; int cmd, r, umount_log_level = LOG_INFO; static const char* const dirs[] = {SYSTEM_SHUTDOWN_PATH, NULL}; @@ -370,25 +393,7 @@ int main(int argc, char *argv[]) { LOG_TARGET_KMSG)) bump_sysctl_printk_log_level(LOG_WARNING); - watchdog_device = getenv("WATCHDOG_DEVICE"); - if (watchdog_device) { - r = watchdog_set_device(watchdog_device); - if (r < 0) - log_warning_errno(r, "Failed to set watchdog device to %s, ignoring: %m", - watchdog_device); - } - - watchdog_usec = getenv("WATCHDOG_USEC"); - if (watchdog_usec) { - usec_t usec; - - r = safe_atou64(watchdog_usec, &usec); - if (r < 0) - log_warning_errno(r, "Failed to parse watchdog timeout '%s', ignoring: %m", - watchdog_usec); - else - (void) watchdog_setup(usec); - } + init_watchdog(); /* Lock us into memory */ (void) mlockall(MCL_CURRENT|MCL_FUTURE);