From 13123276806f5a2e209bd1ae16c894e0415e520d Mon Sep 17 00:00:00 2001
From: Simon Glass <sjg@chromium.org>
Date: Mon, 21 Aug 2023 21:16:52 -0600
Subject: [PATCH] initcall: Adjust the failure message and return value

Move the failure message outside the loop, so it is easier to follow the
code. Avoid swallowing the error code - just pass it along.

Drop the initcall-list address from the output. This is confusing since
we show two addresses. Really it is only the function address which is
useful, since it can be looked up in the map, e.g. with:

   grep -A1 -B1 serial_init u-boot.map

Signed-off-by: Simon Glass <sjg@chromium.org>
---
 lib/initcall.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/lib/initcall.c b/lib/initcall.c
index 81c5d24507..0f74cef32f 100644
--- a/lib/initcall.c
+++ b/lib/initcall.c
@@ -46,11 +46,13 @@ int initcall_run_list(const init_fnc_t init_sequence[])
 		}
 
 		ret = func();
-		if (ret) {
-			printf("initcall sequence %p failed at call %p (err=%d)\n",
-			       init_sequence, (char *)func - reloc_ofs, ret);
-			return -1;
-		}
+	}
+
+	if (ret) {
+		printf("initcall failed at call %p (err=%dE)\n",
+		       (char *)func - reloc_ofs, ret);
+
+		return ret;
 	}
 
 	return 0;
-- 
2.39.5