summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJan Janssen <medhefgo@web.de>2022-10-12 09:39:59 +0200
committerJan Janssen <medhefgo@web.de>2022-10-12 13:36:22 +0200
commit1a9874905a900dc7d02bf4ef4c0a87931a5ad75c (patch)
tree2d4c6b1d5d808d1d50ead013790b737dfbe27db9 /src
parent5b3e33c26fded99a18852117e9feaf5f78bb7227 (diff)
downloadsystemd-1a9874905a900dc7d02bf4ef4c0a87931a5ad75c.tar.gz
boot: Always reconnect all drivers
Fixes: #23442
Diffstat (limited to 'src')
-rw-r--r--src/boot/efi/boot.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/boot/efi/boot.c b/src/boot/efi/boot.c
index 087d6bf434..6b3d29ba3b 100644
--- a/src/boot/efi/boot.c
+++ b/src/boot/efi/boot.c
@@ -2660,6 +2660,12 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) {
/* Uncomment the next line if you need to wait for debugger. */
// debug_break();
+ /* The firmware may skip initializing some devices for the sake of a faster boot. This is especially
+ * true for fastboot enabled firmwares. But this means that things we use like input devices or the
+ * xbootldr partition may not be available yet. Reconnect all drivers should hopefully make the
+ * firmware initialize everything we need. */
+ (void) reconnect_all_drivers();
+
err = BS->OpenProtocol(image,
&LoadedImageProtocol,
(void **)&loaded_image,