From c0da3f50feee8af9204693231ff1d3fdcc5b4dce Mon Sep 17 00:00:00 2001 From: Thomas Schoebel-Theuer Date: Sat, 7 Jan 2017 11:24:15 +0100 Subject: [PATCH] main: safeguard forceful killing --- kernel/sy_old/mars_main.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/kernel/sy_old/mars_main.c b/kernel/sy_old/mars_main.c index ae4cfa4c..5b3b68ea 100644 --- a/kernel/sy_old/mars_main.c +++ b/kernel/sy_old/mars_main.c @@ -451,13 +451,16 @@ struct mars_brick *_kill_brick(struct mars_brick* brick) int status; int i; - for (i = 0; i < 4; i++) + MARS_DBG("brick '%s' forceful shutdown\n", brick->brick_path); + + /* any predecessors should timeout ASAP */ + for (i = 0; i < brick->nr_inputs; i++) if (brick->inputs[i] && brick->inputs[i]->brick) brick->inputs[i]->brick->power.io_timeout = 1; - /* first switch off before trying to wait */ + /* first switch off (in parallel to other ones) before waiting */ if (!brick->power.led_off) { - MARS_DBG("need switching off\n"); + MARS_DBG("brick '%s' needs switching off\n", brick->brick_path); mars_power_button(brick, false, true); return brick; }