summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorArd Biesheuvel <ardb@kernel.org>2023-03-12 23:00:03 +0100
committerArd Biesheuvel <ardb@kernel.org>2023-03-13 23:28:43 +0100
commit8b3a149db461d3286d1e211112de3b44ccaeaf71 (patch)
tree69be97ff89eb46cba2d8685fec4164b8d2d5049b /include
parentarm64: efi: Set NX compat flag in PE/COFF header (diff)
downloadlinux-8b3a149db461d3286d1e211112de3b44ccaeaf71.tar.xz
linux-8b3a149db461d3286d1e211112de3b44ccaeaf71.zip
efi: earlycon: Reprobe after parsing config tables
Commit 732ea9db9d8a ("efi: libstub: Move screen_info handling to common code") reorganized the earlycon handling so that all architectures pass the screen_info data via a EFI config table instead of populating struct screen_info directly, as the latter is only possible when the EFI stub is baked into the kernel (and not into the decompressor). However, this means that struct screen_info may not have been populated yet by the time the earlycon probe takes place, and this results in a non-functional early console. So let's probe again right after parsing the config tables and populating struct screen_info. Note that this means that earlycon output starts a bit later than before, and so it may fail to capture issues that occur while doing the early EFI initialization. Fixes: 732ea9db9d8a ("efi: libstub: Move screen_info handling to common code") Reported-by: Shawn Guo <shawn.guo@linaro.org> Tested-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/efi.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/efi.h b/include/linux/efi.h
index 04a733f0ba95..7aa62c92185f 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -693,6 +693,7 @@ efi_guid_to_str(efi_guid_t *guid, char *out)
}
extern void efi_init (void);
+extern void efi_earlycon_reprobe(void);
#ifdef CONFIG_EFI
extern void efi_enter_virtual_mode (void); /* switch EFI to virtual mode, if possible */
#else