From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Thu, 3 Oct 2024 12:26:07 +0200 Subject: [PATCH] Stop grub.efi from always printing "dynamic_load_symbols %p\n" during boot Commit 972aa68d2bf5 ("Make a "gdb" dprintf that tells us load addresses.") added some debug prints to help with running gdb against grub. Besides adding a new grub_dl_print_gdb_info () function which uses `grub_qdprintf ("gdb", ...);` it also adds a new grub_efi_print_gdb_info () call to grub_efi_init (). grub_efi_print_gdb_info () is intended for the gdbinfo command and uses a non debug grub_printf () call leading to grub now always printing this message during boot breaking flicker-free boot. Add a new "debug" parameter to grub_efi_print_gdb_info () and use `grub_qdprintf ("gdb", ...);` when this is set to silence the printing done from grub_efi_init () when debugging is not enabled. Fixes: 972aa68d2bf5 ("Make a "gdb" dprintf that tells us load addresses.") Signed-off-by: Hans de Goede --- grub-core/kern/efi/debug.c | 2 +- grub-core/kern/efi/init.c | 2 +- include/grub/efi/debug.h | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/grub-core/kern/efi/debug.c b/grub-core/kern/efi/debug.c index 5d2ab1a36ff..5ac194fc8f4 100644 --- a/grub-core/kern/efi/debug.c +++ b/grub-core/kern/efi/debug.c @@ -26,7 +26,7 @@ grub_cmd_gdbinfo (struct grub_command *cmd __attribute__ ((unused)), int argc __attribute__ ((unused)), char **args __attribute__ ((unused))) { - grub_efi_print_gdb_info (); + grub_efi_print_gdb_info (false); return 0; } diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c index d35d6974734..ce8a7fe7122 100644 --- a/grub-core/kern/efi/init.c +++ b/grub-core/kern/efi/init.c @@ -157,7 +157,7 @@ grub_efi_init (void) grub_efi_system_table->boot_services->set_watchdog_timer (0, 0, 0, NULL); grub_efi_env_init (); - grub_efi_print_gdb_info (); + grub_efi_print_gdb_info (true); grub_efidisk_init (); grub_efi_register_debug_commands (); diff --git a/include/grub/efi/debug.h b/include/grub/efi/debug.h index c2d2a03b06f..961e591afa3 100644 --- a/include/grub/efi/debug.h +++ b/include/grub/efi/debug.h @@ -27,7 +27,7 @@ void grub_efi_register_debug_commands (void); static inline void -grub_efi_print_gdb_info (void) +grub_efi_print_gdb_info (bool debug) { grub_addr_t text; @@ -35,7 +35,10 @@ grub_efi_print_gdb_info (void) if (!text) return; - grub_printf ("dynamic_load_symbols %p\n", (void *)text); + if (debug) + grub_qdprintf ("gdb", "dynamic_load_symbols %p\n", (void *)text); + else + grub_printf ("dynamic_load_symbols %p\n", (void *)text); } #endif /* ! GRUB_EFI_DEBUG_HEADER */