The efi partition enumeration stops, if a partition entry is
invalid or non-existent.
Later partitions which would be valid are therefore not enumerated.
This can be the case, eg. if a device with the following
partitions is enumerated: p1, p2, p4, p5, p6.
Skipping the invalid entry instead of exiting the enumeration fixes
this problem.

Signed-off-by: Christopher Ebner <[email protected]>
---
 common/partitions/efi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/common/partitions/efi.c b/common/partitions/efi.c
index ffdbd9a56f..0411a8b248 100644
--- a/common/partitions/efi.c
+++ b/common/partitions/efi.c
@@ -460,7 +460,7 @@ static void efi_partition(void *buf, struct block_device 
*blk,
        for (i = 0; i < nb_part; i++) {
                if (!is_pte_valid(&ptes[i], last_lba(blk))) {
                        dev_dbg(blk->dev, "Invalid pte %d\n", i);
-                       return;
+                       continue;
                }
 
                pentry = &pd->parts[pd->used_entries];
-- 
2.25.1


Reply via email to