From 2123a7ccb48491429a836d584d7f9cbb5ca12900 Mon Sep 17 00:00:00 2001 From: Jessica Hamilton Date: Tue, 6 Jul 2021 23:01:18 +1200 Subject: [PATCH] efi: fix searching for additional Haiku installations * platform_add_block_devices() is a no-op, as efi already provides all devices to the generic loader code. * remove iterator.Remove() in platform_get_boot_partitions() as the simplified devices scan no longer duplicates partition entries. Fixes #17051 Change-Id: I38789b069e1be9b18312e2455bc91e6195114599 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4160 Tested-by: Commit checker robot Reviewed-by: Alex von Gluck IV --- src/system/boot/platform/efi/devices.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/system/boot/platform/efi/devices.cpp b/src/system/boot/platform/efi/devices.cpp index 18c7180562..990515f916 100644 --- a/src/system/boot/platform/efi/devices.cpp +++ b/src/system/boot/platform/efi/devices.cpp @@ -235,7 +235,7 @@ platform_add_block_devices(struct stage2_args *args, NodeList *devicesList) TRACE("%s: called\n", __func__); //TODO: Currently we add all in platform_add_boot_device - return B_ENTRY_NOT_FOUND; + return devicesList->Count() > 0 ? B_OK : B_ENTRY_NOT_FOUND; } @@ -247,7 +247,6 @@ platform_get_boot_partitions(struct stage2_args *args, Node *bootDevice, boot::Partition *partition = NULL; while ((partition = (boot::Partition*)iterator.Next()) != NULL) { if (device_contains_partition((EfiDevice*)bootDevice, partition)) { - iterator.Remove(); bootPartitions->Insert(partition); } }