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@xxxxxxxxx> Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- 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