Skip to content

Commit

Permalink
part: efi: rework the partition start and size in gpt_fill_pte
Browse files Browse the repository at this point in the history
The start variable is only used inside a loop, and is never affected inside
it, so it's a purely local variable.

In the same way the partition size is accessed several times, so we can
store it in a variable.

Signed-off-by: Maxime Ripard <[email protected]>
Reviewed-by: Tom Rini <[email protected]>
  • Loading branch information
mripard authored and trini committed Sep 3, 2017
1 parent 89d33a2 commit 5276e8b
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions disk/part_efi.c
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,6 @@ int gpt_fill_pte(gpt_header *gpt_h, gpt_entry *gpt_e,
disk_partition_t *partitions, int parts)
{
lbaint_t offset = (lbaint_t)le64_to_cpu(gpt_h->first_usable_lba);
lbaint_t start;
lbaint_t last_usable_lba = (lbaint_t)
le64_to_cpu(gpt_h->last_usable_lba);
int i, k;
Expand All @@ -448,24 +447,27 @@ int gpt_fill_pte(gpt_header *gpt_h, gpt_entry *gpt_e,

for (i = 0; i < parts; i++) {
/* partition starting lba */
start = partitions[i].start;
lbaint_t start = partitions[i].start;
lbaint_t size = partitions[i].size;

if (start && (start < offset)) {
printf("Partition overlap\n");
return -1;
}

if (start) {
gpt_e[i].starting_lba = cpu_to_le64(start);
offset = start + partitions[i].size;
offset = start + size;
} else {
gpt_e[i].starting_lba = cpu_to_le64(offset);
offset += partitions[i].size;
offset += size;
}
if (offset > (last_usable_lba + 1)) {
printf("Partitions layout exceds disk size\n");
return -1;
}
/* partition ending lba */
if ((i == parts - 1) && (partitions[i].size == 0))
if ((i == parts - 1) && (size == 0))
/* extend the last partition to maximuim */
gpt_e[i].ending_lba = gpt_h->last_usable_lba;
else
Expand Down Expand Up @@ -525,7 +527,7 @@ int gpt_fill_pte(gpt_header *gpt_h, gpt_entry *gpt_e,
debug("%s: name: %s offset[%d]: 0x" LBAF
" size[%d]: 0x" LBAF "\n",
__func__, partitions[i].name, i,
offset, i, partitions[i].size);
offset, i, size);
}

return 0;
Expand Down

0 comments on commit 5276e8b

Please sign in to comment.