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 <ch.ebner@xxxxxxxxxxx> --- 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