mirror of https://github.com/schoebel/mars
infra: fix memleak when brick is not killable
This commit is contained in:
parent
31374c81ab
commit
531e4def99
|
@ -1131,6 +1131,11 @@ int mars_kill_brick(struct mars_brick *brick)
|
||||||
|
|
||||||
MARS_DBG("===> killing brick %s path = '%s' name = '%s'\n", brick->type ? SAFE_STR(brick->type->type_name) : "undef", SAFE_STR(brick->brick_path), SAFE_STR(brick->brick_name));
|
MARS_DBG("===> killing brick %s path = '%s' name = '%s'\n", brick->type ? SAFE_STR(brick->type->type_name) : "undef", SAFE_STR(brick->brick_path), SAFE_STR(brick->brick_name));
|
||||||
|
|
||||||
|
if (unlikely(brick->nr_outputs > 0 && brick->outputs[0] && brick->outputs[0]->nr_connected)) {
|
||||||
|
MARS_ERR("sorry, output is in use '%s'\n", SAFE_STR(brick->brick_path));
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
if (global) {
|
if (global) {
|
||||||
down_write(&global->brick_mutex);
|
down_write(&global->brick_mutex);
|
||||||
list_del_init(&brick->global_brick_link);
|
list_del_init(&brick->global_brick_link);
|
||||||
|
@ -1142,11 +1147,6 @@ int mars_kill_brick(struct mars_brick *brick)
|
||||||
brick->show_status(brick, true);
|
brick->show_status(brick, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(brick->nr_outputs > 0 && brick->outputs[0] && brick->outputs[0]->nr_connected)) {
|
|
||||||
MARS_ERR("sorry, output is in use '%s'\n", SAFE_STR(brick->brick_path));
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
// start shutdown
|
// start shutdown
|
||||||
status = set_recursive_button((void*)brick, BR_FREE_ONE, 0);
|
status = set_recursive_button((void*)brick, BR_FREE_ONE, 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue