diff options
Diffstat (limited to 'meta-phosphor/recipes-core/busybox')
-rw-r--r-- | meta-phosphor/recipes-core/busybox/busybox/0001-Stop-watchdog-first-on-startup.patch | 63 | ||||
-rw-r--r-- | meta-phosphor/recipes-core/busybox/busybox_%.bbappend | 1 |
2 files changed, 0 insertions, 64 deletions
diff --git a/meta-phosphor/recipes-core/busybox/busybox/0001-Stop-watchdog-first-on-startup.patch b/meta-phosphor/recipes-core/busybox/busybox/0001-Stop-watchdog-first-on-startup.patch deleted file mode 100644 index 7128b8108..000000000 --- a/meta-phosphor/recipes-core/busybox/busybox/0001-Stop-watchdog-first-on-startup.patch +++ /dev/null @@ -1,63 +0,0 @@ -From a4c493ae42926ab36fdc805a5da9f0682bb98b45 Mon Sep 17 00:00:00 2001 -From: Matt Spinler <spinler@us.ibm.com> -Date: Tue, 13 Jun 2017 15:26:49 -0500 -Subject: [PATCH] Stop watchdog first on startup - -Some watchdog implementations may do things other than issue -a reboot on a watchdog timeout. In this case, there's the -possibility of restarting this program from the state of -the watchdog device not being properly stopped (done by writing -a 'V' and closing the device). Since it wasn't stopped, the -driver may not be able to restart the watchdog when this program -reopens it and starts pinging it. - -To fix this, the code will always first issue the stop when it -starts up. - -Signed-off-by: Matt Spinler <spinler@us.ibm.com> ---- - miscutils/watchdog.c | 21 +++++++++++++++++++-- - 1 file changed, 19 insertions(+), 2 deletions(-) - -diff --git a/miscutils/watchdog.c b/miscutils/watchdog.c -index 07ae64e52..223e3c32d 100644 ---- a/miscutils/watchdog.c -+++ b/miscutils/watchdog.c -@@ -53,6 +53,24 @@ static void watchdog_shutdown(int sig UNUSED_PARAM) - _exit(EXIT_SUCCESS); - } - -+static void watchdog_open(const char* device) -+{ -+ static const char magic_value = 'V'; -+ -+ /* If the watchdog driver can do something other than cause a reboot -+ * on a timeout, then it's possible this program may be starting from -+ * a state when the watchdog hadn't been previously stopped with -+ * the magic write followed by a close. In this case the driver may -+ * not start properly, so always do the proper stop first just in case. -+ */ -+ -+ /* Use known fd # - avoid needing global 'int fd' */ -+ xmove_fd(xopen(device, O_WRONLY), 3); -+ write(3, &magic_value, 1); -+ close(3); -+ xmove_fd(xopen(device, O_WRONLY), 3); -+} -+ - int watchdog_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; - int watchdog_main(int argc, char **argv) - { -@@ -88,8 +106,7 @@ int watchdog_main(int argc, char **argv) - - bb_signals(BB_FATAL_SIGS, watchdog_shutdown); - -- /* Use known fd # - avoid needing global 'int fd' */ -- xmove_fd(xopen(argv[argc - 1], O_WRONLY), 3); -+ watchdog_open(argv[argc - 1]); - - /* WDIOC_SETTIMEOUT takes seconds, not milliseconds */ - htimer_duration = htimer_duration / 1000; --- -2.11.0 - diff --git a/meta-phosphor/recipes-core/busybox/busybox_%.bbappend b/meta-phosphor/recipes-core/busybox/busybox_%.bbappend index cc88bcc40..8907b08e0 100644 --- a/meta-phosphor/recipes-core/busybox/busybox_%.bbappend +++ b/meta-phosphor/recipes-core/busybox/busybox_%.bbappend @@ -2,5 +2,4 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" SRC_URI += "file://busybox.cfg" SRC_URI += "file://flash.cfg" SRC_URI += "file://mountpoint.cfg" -SRC_URI += "file://0001-Stop-watchdog-first-on-startup.patch" SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'obmc-ubi-fs', '', 'file://reboot.cfg', d)}" |