In case bootchooser is used, boot_entry() will be called twice:
1) boot bootchooser
2) boot <chosen_entry>
Thus it will lead to twice watchdog configuration if watchdog_timeout
is set.
Except that it should be activated only once in any way, it leads
to unwanted reset when issuing too much "near" calls of the watchdog
configuration for da9062.
Can be reproduced with this command:
 barebox/ wd 30;wd 30
Even if this commands are intentional, 'boot bootchooser' is not.
Resetting watchdog_timeout to 0 after first watchdog
configuration solves this problem ensuring watchdog will not be
configured a second time.

Signed-off-by: Gilles DOFFE <[email protected]>
---
 common/boot.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/common/boot.c b/common/boot.c
index f546fce62..8d09f96b6 100644
--- a/common/boot.c
+++ b/common/boot.c
@@ -150,6 +150,8 @@ int boot_entry(struct bootentry *be, int verbose, int 
dryrun)
                                           boot_watchdog_timeout);
                if (ret)
                        pr_warn("Failed to enable watchdog: %s\n", 
strerror(-ret));
+
+               boot_watchdog_timeout = 0;
        }
 
        ret = be->boot(be, verbose, dryrun);
-- 
2.25.1


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to