[PATCH master 2/4] console: add for_each_console stub

Ahmad Fatoum a.fatoum at pengutronix.de
Sun Nov 19 23:21:20 PST 2023


With CONFIG_CONSOLE_NONE, we have no consoles and no console_list, but
the unconditional for_each_console in the bootm earlycon code references
console_list leading to a linker error.

Let's define for_each_console as a no-op to fix this.

Fixes: d17f29dba030 ("console: add new $global.bootm.earlycon parameter")
Reported-by: Steffen Hemer <S.Hemer at phytec.de>
Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
 include/console.h | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/include/console.h b/include/console.h
index 018d47f69ef7..b400b6bf49ec 100644
--- a/include/console.h
+++ b/include/console.h
@@ -94,9 +94,6 @@ struct console_device *console_get_by_dev(struct device *dev);
 struct console_device *console_get_by_name(const char *name);
 struct console_device *of_console_get_by_alias(const char *alias);
 
-extern struct list_head console_list;
-#define for_each_console(console) list_for_each_entry(console, &console_list, list)
-
 #define CFG_PBSIZE (CONFIG_CBSIZE+sizeof(CONFIG_PROMPT)+16)
 
 extern int barebox_loglevel;
@@ -200,8 +197,13 @@ static inline void pbl_set_putc(void (*putcf)(void *ctx, int c), void *ctx) {}
 bool console_allow_color(void);
 
 #ifndef CONFIG_CONSOLE_NONE
+extern struct list_head console_list;
+#define for_each_console(console) list_for_each_entry(console, &console_list, list)
+
 struct console_device *console_get_first_active(void);
 #else
+#define for_each_console(console) while (((void)console, 0))
+
 static inline struct console_device *console_get_first_active(void)
 {
 	return NULL;
-- 
2.39.2




More information about the barebox mailing list