summaryrefslogtreecommitdiff
path: root/src/boot/efi
diff options
context:
space:
mode:
authorJan Janssen <medhefgo@web.de>2022-11-27 13:53:30 +0100
committerJan Janssen <medhefgo@web.de>2022-11-29 15:03:52 +0100
commit7f19be808c9cb9cabcaf1e48ccff875fa8191d3a (patch)
tree38e2afabf1862fae56bb2b2f467f0f02a448199a /src/boot/efi
parentb99bf5811850afdb2502ba37251c48348da63c82 (diff)
downloadsystemd-7f19be808c9cb9cabcaf1e48ccff875fa8191d3a.tar.gz
boot: Make sure all partitions drivers are connected
Diffstat (limited to 'src/boot/efi')
-rw-r--r--src/boot/efi/part-discovery.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/boot/efi/part-discovery.c b/src/boot/efi/part-discovery.c
index de6d6112a1..14479c06ea 100644
--- a/src/boot/efi/part-discovery.c
+++ b/src/boot/efi/part-discovery.c
@@ -202,6 +202,10 @@ static EFI_STATUS find_device(const EFI_GUID *type, EFI_HANDLE *device, EFI_DEVI
if (err != EFI_SUCCESS)
return err;
+ /* The drivers for other partitions on this drive may not be initialized on fastboot firmware, so we
+ * have to ask the firmware to do just that. */
+ (void) BS->ConnectController(disk_handle, NULL, NULL, true);
+
err = BS->HandleProtocol(disk_handle, &BlockIoProtocol, (void **)&block_io);
if (err != EFI_SUCCESS)
return err;