Re: [U-Boot] [PATCH v2] cmd: gpt: fix the wrong size parse for the last partition

2016-08-03 Thread Michael Trimarchi
Hi

On Aug 4, 2016 05:38, "Kever Yang"  wrote:
>
> Hi Michael,
>
> Do you think this patch is necessary?
>

Yes, I have checked it and fix the regression. Today I will confirm on hot
correctness but I think too

Michael

> Thanks,
> -Kever
>
> On 07/29/2016 11:12 AM, Kever Yang wrote:
>>
>> The calculation of "dev_desc->lba - 34  - 1 - offset" is not correct for
>> size '-', because both fist_usable_lba and last_usable_lba will remain
>> 34 sectors.
>>
>> We can simply use 0 for size '-' because the part_efi module will decode
>> the size and auto extend the size to maximum available size.
>>
>> Signed-off-by: Kever Yang 
>> ---
>>
>> Changes in v2:
>> - fix gpt verify error, do not check the extend partition size
>>
>>   cmd/gpt.c   | 4 ++--
>>   disk/part_efi.c | 4 
>>   2 files changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/cmd/gpt.c b/cmd/gpt.c
>> index 3d9706b..897596a 100644
>> --- a/cmd/gpt.c
>> +++ b/cmd/gpt.c
>> @@ -298,8 +298,8 @@ static int set_gpt_info(struct blk_desc *dev_desc,
>> if (extract_env(val, ))
>> p = val;
>> if ((strcmp(p, "-") == 0)) {
>> -   /* remove first usable lba and last block */
>> -   parts[i].size = dev_desc->lba - 34  - 1 - offset;
>> +   /* Let part efi module to auto extend the size */
>> +   parts[i].size = 0;
>> } else {
>> size_ll = ustrtoull(p, , 0);
>> parts[i].size = lldiv(size_ll, dev_desc->blksz);
>> diff --git a/disk/part_efi.c b/disk/part_efi.c
>> index 0af1e92..4566cab 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);
>
>
>
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v2] cmd: gpt: fix the wrong size parse for the last partition

2016-08-03 Thread Kever Yang

Hi Michael,

Do you think this patch is necessary?

Thanks,
-Kever
On 07/29/2016 11:12 AM, Kever Yang wrote:

The calculation of "dev_desc->lba - 34  - 1 - offset" is not correct for
size '-', because both fist_usable_lba and last_usable_lba will remain
34 sectors.

We can simply use 0 for size '-' because the part_efi module will decode
the size and auto extend the size to maximum available size.

Signed-off-by: Kever Yang 
---

Changes in v2:
- fix gpt verify error, do not check the extend partition size

  cmd/gpt.c   | 4 ++--
  disk/part_efi.c | 4 
  2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/cmd/gpt.c b/cmd/gpt.c
index 3d9706b..897596a 100644
--- a/cmd/gpt.c
+++ b/cmd/gpt.c
@@ -298,8 +298,8 @@ static int set_gpt_info(struct blk_desc *dev_desc,
if (extract_env(val, ))
p = val;
if ((strcmp(p, "-") == 0)) {
-   /* remove first usable lba and last block */
-   parts[i].size = dev_desc->lba - 34  - 1 - offset;
+   /* Let part efi module to auto extend the size */
+   parts[i].size = 0;
} else {
size_ll = ustrtoull(p, , 0);
parts[i].size = lldiv(size_ll, dev_desc->blksz);
diff --git a/disk/part_efi.c b/disk/part_efi.c
index 0af1e92..4566cab 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);



___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v2] cmd: gpt: fix the wrong size parse for the last partition

2016-07-28 Thread Kever Yang
The calculation of "dev_desc->lba - 34  - 1 - offset" is not correct for
size '-', because both fist_usable_lba and last_usable_lba will remain
34 sectors.

We can simply use 0 for size '-' because the part_efi module will decode
the size and auto extend the size to maximum available size.

Signed-off-by: Kever Yang 
---

Changes in v2:
- fix gpt verify error, do not check the extend partition size

 cmd/gpt.c   | 4 ++--
 disk/part_efi.c | 4 
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/cmd/gpt.c b/cmd/gpt.c
index 3d9706b..897596a 100644
--- a/cmd/gpt.c
+++ b/cmd/gpt.c
@@ -298,8 +298,8 @@ static int set_gpt_info(struct blk_desc *dev_desc,
if (extract_env(val, ))
p = val;
if ((strcmp(p, "-") == 0)) {
-   /* remove first usable lba and last block */
-   parts[i].size = dev_desc->lba - 34  - 1 - offset;
+   /* Let part efi module to auto extend the size */
+   parts[i].size = 0;
} else {
size_ll = ustrtoull(p, , 0);
parts[i].size = lldiv(size_ll, dev_desc->blksz);
diff --git a/disk/part_efi.c b/disk/part_efi.c
index 0af1e92..4566cab 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);
-- 
1.9.1


___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot