public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] part_efi: Fix partition size calculation due to inclusive ending LBA.
@ 2009-01-05 22:05 Richard Retanubun
  2009-01-23 13:35 ` Richard Retanubun
  0 siblings, 1 reply; 4+ messages in thread
From: Richard Retanubun @ 2009-01-05 22:05 UTC (permalink / raw)
  To: u-boot

This patch fixed an off-by-one bug found for GPT. Because the ending LBA is inclusive, 
the partition size should be ((ending_lba + 1) - starting-LBA).

This is confirmed against the results from the parted tool.
(e.g. use parted /dev/sda -s unit S print) and observe the size.

Signed-off-by: Richard Retanubun <RichardRetanubun@RuggedCom.com>
---
Hi Wolfgang,

I sent this patch in december 12 to u-boot at lists.denx.de but I don't see it 
in the mailing list (possibly because I botched the commit message).

 disk/part_efi.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/disk/part_efi.c b/disk/part_efi.c
index cc188ee..d8a8111 100644
--- a/disk/part_efi.c
+++ b/disk/part_efi.c
@@ -163,7 +163,9 @@ int get_partition_info_efi(block_dev_desc_t * dev_desc, int part,

        /* The ulong casting limits the maximum disk size to 2 TB */
        info->start = (ulong) le64_to_int((*pgpt_pte)[part - 1].starting_lba);
-       info->size = (ulong) le64_to_int((*pgpt_pte)[part - 1].ending_lba) - info->start;
+       /* The ending LBA is inclusive, to calculate size, add 1 to it */
+       info->size = ((ulong)le64_to_int((*pgpt_pte)[part - 1].ending_lba) + 1)
+                    - info->start;
        info->blksz = GPT_BLOCK_SIZE;

        sprintf((char *)info->name, "%s%d\n", GPT_ENTRY_NAME, part);
--
1.5.6.5

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH] part_efi: Fix partition size calculation due to inclusive ending LBA.
  2009-01-05 22:05 [U-Boot] [PATCH] part_efi: Fix partition size calculation due to inclusive ending LBA Richard Retanubun
@ 2009-01-23 13:35 ` Richard Retanubun
  2009-01-26 13:45   ` [U-Boot] [PATCH] [REBASED] " Richard Retanubun
  0 siblings, 1 reply; 4+ messages in thread
From: Richard Retanubun @ 2009-01-23 13:35 UTC (permalink / raw)
  To: u-boot

Ping. checking for feedback on this patch, thanks.
> This patch fixed an off-by-one bug found for GPT. Because the ending LBA is inclusive, 
> the partition size should be ((ending_lba + 1) - starting-LBA).
>
> This is confirmed against the results from the parted tool.
> (e.g. use parted /dev/sda -s unit S print) and observe the size.
>
> Signed-off-by: Richard Retanubun <RichardRetanubun@RuggedCom.com>
> ---
> Hi Wolfgang,
>
> I sent this patch in december 12 to u-boot at lists.denx.de but I don't see it 
> in the mailing list (possibly because I botched the commit message).
>
>  disk/part_efi.c |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/disk/part_efi.c b/disk/part_efi.c
> index cc188ee..d8a8111 100644
> --- a/disk/part_efi.c
> +++ b/disk/part_efi.c
> @@ -163,7 +163,9 @@ int get_partition_info_efi(block_dev_desc_t * dev_desc, int part,
>
>         /* The ulong casting limits the maximum disk size to 2 TB */
>         info->start = (ulong) le64_to_int((*pgpt_pte)[part - 1].starting_lba);
> -       info->size = (ulong) le64_to_int((*pgpt_pte)[part - 1].ending_lba) - info->start;
> +       /* The ending LBA is inclusive, to calculate size, add 1 to it */
> +       info->size = ((ulong)le64_to_int((*pgpt_pte)[part - 1].ending_lba) + 1)
> +                    - info->start;
>         info->blksz = GPT_BLOCK_SIZE;
>
>         sprintf((char *)info->name, "%s%d\n", GPT_ENTRY_NAME, part);
> --
> 1.5.6.5
>
>
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>   

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH] [REBASED] part_efi: Fix partition size calculation due to inclusive ending LBA.
  2009-01-23 13:35 ` Richard Retanubun
@ 2009-01-26 13:45   ` Richard Retanubun
  2009-01-27 22:04     ` Wolfgang Denk
  0 siblings, 1 reply; 4+ messages in thread
From: Richard Retanubun @ 2009-01-26 13:45 UTC (permalink / raw)
  To: u-boot

The ending LBA is inclusive. Hence, the partition size should be
((ending-LBA + 1) - starting-LBA) to get the proper partition size.

This is confirmed against the results from the parted tool.
(e.g. use parted /dev/sda -s unit S print) and observe the size.

Signed-off-by: Richard Retanubun <RichardRetanubun@RuggedCom.com>
---
Hi Wolfgang,
Here is the patch rebased against commit 8f86a3636ef88427f880610638e80991adc41896

Thanks for the help
-Richard

  disk/part_efi.c |    4 +++-
  1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/disk/part_efi.c b/disk/part_efi.c
index cc188ee..d8a8111 100644
--- a/disk/part_efi.c
+++ b/disk/part_efi.c
@@ -163,7 +163,9 @@ int get_partition_info_efi(block_dev_desc_t * dev_desc, int 
part,

  	/* The ulong casting limits the maximum disk size to 2 TB */
  	info->start = (ulong) le64_to_int((*pgpt_pte)[part - 1].starting_lba);
-	info->size = (ulong) le64_to_int((*pgpt_pte)[part - 1].ending_lba) - info->start;
+	/* The ending LBA is inclusive, to calculate size, add 1 to it */
+	info->size = ((ulong)le64_to_int((*pgpt_pte)[part - 1].ending_lba) + 1)
+		     - info->start;
  	info->blksz = GPT_BLOCK_SIZE;

  	sprintf((char *)info->name, "%s%d\n", GPT_ENTRY_NAME, part);
-- 
1.5.6.5

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH] [REBASED] part_efi: Fix partition size calculation due to inclusive ending LBA.
  2009-01-26 13:45   ` [U-Boot] [PATCH] [REBASED] " Richard Retanubun
@ 2009-01-27 22:04     ` Wolfgang Denk
  0 siblings, 0 replies; 4+ messages in thread
From: Wolfgang Denk @ 2009-01-27 22:04 UTC (permalink / raw)
  To: u-boot

Dear Richard Retanubun,

In message <497DBE6A.5090107@RuggedCom.com> you wrote:
> The ending LBA is inclusive. Hence, the partition size should be
> ((ending-LBA + 1) - starting-LBA) to get the proper partition size.
> 
> This is confirmed against the results from the parted tool.
> (e.g. use parted /dev/sda -s unit S print) and observe the size.
> 
> Signed-off-by: Richard Retanubun <RichardRetanubun@RuggedCom.com>
> ---
> Hi Wolfgang,
> Here is the patch rebased against commit 8f86a3636ef88427f880610638e80991adc41896
> 
> Thanks for the help
> -Richard
> 
>   disk/part_efi.c |    4 +++-
>   1 files changed, 3 insertions(+), 1 deletions(-)

Applied, thanks, but...

> diff --git a/disk/part_efi.c b/disk/part_efi.c
> index cc188ee..d8a8111 100644
> --- a/disk/part_efi.c
> +++ b/disk/part_efi.c
> @@ -163,7 +163,9 @@ int get_partition_info_efi(block_dev_desc_t * dev_desc, int 
> part,
^^^^^^^^^^
Line wrapped.

Please fix your mailer!

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Democracy is mob rule, but with income taxes.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-01-27 22:04 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-05 22:05 [U-Boot] [PATCH] part_efi: Fix partition size calculation due to inclusive ending LBA Richard Retanubun
2009-01-23 13:35 ` Richard Retanubun
2009-01-26 13:45   ` [U-Boot] [PATCH] [REBASED] " Richard Retanubun
2009-01-27 22:04     ` Wolfgang Denk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox