From f24367963e3ec50c14fd30454ca883ee8c831dc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20J=C3=A4ger?= Date: Wed, 20 Oct 2021 11:53:31 +0200 Subject: [PATCH] task_wdt: ensure hw wdt is started before being fed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If a fallback hardware watchdog is used, it is fed together with the task watchdog in task_wdt_feed. However, the hardware watchdog was not yet set up before the first call to task_wdt_feed. This commit fixes the order of wdt_setup and task_wdt_feed calls. Fixes #39523 Signed-off-by: Martin Jäger --- subsys/task_wdt/task_wdt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/subsys/task_wdt/task_wdt.c b/subsys/task_wdt/task_wdt.c index 7941313be97..a3a9b87d85c 100644 --- a/subsys/task_wdt/task_wdt.c +++ b/subsys/task_wdt/task_wdt.c @@ -164,7 +164,6 @@ int task_wdt_add(uint32_t reload_period, task_wdt_callback_t callback, channels[id].user_data = user_data; channels[id].timeout_abs_ticks = K_TICKS_FOREVER; channels[id].callback = callback; - task_wdt_feed(id); #ifdef CONFIG_TASK_WDT_HW_FALLBACK if (!hw_wdt_started && hw_wdt_dev) { @@ -174,6 +173,9 @@ int task_wdt_add(uint32_t reload_period, task_wdt_callback_t callback, hw_wdt_started = true; } #endif + /* must be called after hw wdt has been started */ + task_wdt_feed(id); + return id; } }