]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
initcall: Adjust the loop logic
authorSimon Glass <sjg@chromium.org>
Tue, 22 Aug 2023 03:16:51 +0000 (21:16 -0600)
committerTom Rini <trini@konsulko.com>
Thu, 31 Aug 2023 17:16:54 +0000 (13:16 -0400)
Use a variable to hold the function, so we don't need to repeat the
pointer access each time. Rename the init pointer to 'ptr' since we only
refer to it in the for() statement now.

Signed-off-by: Simon Glass <sjg@chromium.org>
lib/initcall.c

index 89a68b2444feeb09a8388c47f66f1f36ce4f72b8..81c5d24507359fda8314295cf29ae58b64461f90 100644 (file)
@@ -33,25 +33,25 @@ static ulong calc_reloc_ofs(void)
 int initcall_run_list(const init_fnc_t init_sequence[])
 {
        ulong reloc_ofs = calc_reloc_ofs();
-       const init_fnc_t *init_fnc_ptr;
+       const init_fnc_t *ptr;
+       init_fnc_t func;
+       int ret = 0;
 
-       for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
-               int ret;
-
-               if (reloc_ofs)
+       for (ptr = init_sequence; func = *ptr, !ret && func; ptr++) {
+               if (reloc_ofs) {
                        debug("initcall: %p (relocated to %p)\n",
-                             (char *)*init_fnc_ptr - reloc_ofs,
-                             (char *)*init_fnc_ptr);
-               else
-                       debug("initcall: %p\n", (char *)*init_fnc_ptr - reloc_ofs);
+                             (char *)func - reloc_ofs, func);
+               } else {
+                       debug("initcall: %p\n", (char *)func - reloc_ofs);
+               }
 
-               ret = (*init_fnc_ptr)();
+               ret = func();
                if (ret) {
                        printf("initcall sequence %p failed at call %p (err=%d)\n",
-                              init_sequence,
-                              (char *)*init_fnc_ptr - reloc_ofs, ret);
+                              init_sequence, (char *)func - reloc_ofs, ret);
                        return -1;
                }
        }
+
        return 0;
 }