diff options
Diffstat (limited to 'disk/part_efi.c')
-rw-r--r-- | disk/part_efi.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/disk/part_efi.c b/disk/part_efi.c index 0af1e9248d..8d67c09a43 100644 --- a/disk/part_efi.c +++ b/disk/part_efi.c @@ -655,6 +655,10 @@ int gpt_verify_partitions(struct blk_desc *dev_desc, (unsigned long long)partitions[i].size); if (le64_to_cpu(gpt_part_size) != partitions[i].size) { + /* We do not check the extend partition size */ + if ((i == parts - 1) && (partitions[i].size == 0)) + continue; + error("Partition %s size: %llu does not match %llu!\n", efi_str, (unsigned long long)gpt_part_size, (unsigned long long)partitions[i].size); @@ -886,9 +890,10 @@ static gpt_entry *alloc_read_gpt_entries(struct blk_desc *dev_desc, count = le32_to_cpu(pgpt_head->num_partition_entries) * le32_to_cpu(pgpt_head->sizeof_partition_entry); - debug("%s: count = %u * %u = %zu\n", __func__, + debug("%s: count = %u * %u = %lu\n", __func__, (u32) le32_to_cpu(pgpt_head->num_partition_entries), - (u32) le32_to_cpu(pgpt_head->sizeof_partition_entry), count); + (u32) le32_to_cpu(pgpt_head->sizeof_partition_entry), + (ulong)count); /* Allocate memory for PTE, remember to FREE */ if (count != 0) { @@ -897,9 +902,8 @@ static gpt_entry *alloc_read_gpt_entries(struct blk_desc *dev_desc, } if (count == 0 || pte == NULL) { - printf("%s: ERROR: Can't allocate 0x%zX " - "bytes for GPT Entries\n", - __func__, count); + printf("%s: ERROR: Can't allocate %#lX bytes for GPT Entries\n", + __func__, (ulong)count); return NULL; } |