initcall: Display error number when an error occurs
authorSimon Glass <sjg@chromium.org>
Thu, 2 Oct 2014 01:57:22 +0000 (19:57 -0600)
committerSimon Glass <sjg@chromium.org>
Wed, 22 Oct 2014 16:36:54 +0000 (10:36 -0600)
Now that some initcall functions return a useful error number, display it
when something goes wrong.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
lib/initcall.c

index 7597bad555404a276a72afd4bda981e0f4187ce7..39f4b3f8ad5ffecc59afa59f9e96a93f4e16fe5c 100644 (file)
@@ -15,14 +15,16 @@ int initcall_run_list(const init_fnc_t init_sequence[])
 
        for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
                unsigned long reloc_ofs = 0;
+               int ret;
 
                if (gd->flags & GD_FLG_RELOC)
                        reloc_ofs = gd->reloc_off;
                debug("initcall: %p\n", (char *)*init_fnc_ptr - reloc_ofs);
-               if ((*init_fnc_ptr)()) {
-                       printf("initcall sequence %p failed at call %p\n",
+               ret = (*init_fnc_ptr)();
+               if (ret) {
+                       printf("initcall sequence %p failed at call %p (err=%d)\n",
                               init_sequence,
-                              (char *)*init_fnc_ptr - reloc_ofs);
+                              (char *)*init_fnc_ptr - reloc_ofs, ret);
                        return -1;
                }
        }