In run_init_funcs, keep going even if one of the functions reports an error.
BUG=None
TEST=Built for Fox, Link, and Daisy, booted on Daisy.
BRANCH=None
Change-Id: Ie6968b9bcc0506b5a698c6196bdeef84e65a29cd
Signed-off-by: Gabe Black <gabeblack@google.com>
Reviewed-on: https://gerrit.chromium.org/gerrit/48841
Reviewed-by: David Hendricks <dhendrix@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
diff --git a/src/base/init_funcs.c b/src/base/init_funcs.c
index 744aaed..260673c 100644
--- a/src/base/init_funcs.c
+++ b/src/base/init_funcs.c
@@ -27,10 +27,10 @@
{
init_func_t *start = (init_func_t *)&_init_funcs_start;
init_func_t *end = (init_func_t *)&_init_funcs_end;
+ int res = 0;
for (init_func_t *init_func = start; init_func != end; init_func++)
- if ((*init_func)())
- return 1;
+ res = (*init_func)() || res;
- return 0;
+ return res;
}