[PATCH] fastboot: getvar: fix partition-size return value

Gary Bisson gary.bisson at boundarydevices.com
Wed Jun 24 11:00:17 CEST 2020


Hi,

Gentle ping on this patch. Anyone had a chance to review?

Regards,
Gary

On Wed, May 06, 2020 at 10:12:28AM +0200, Gary Bisson wrote:
> The size returned by 'getvar partition-size' should be in bytes, not in
> blocks as fastboot uses that value to generate empty partition when
> running format [1].
> 
> [1]
> https://android.googlesource.com/platform/system/core/+/refs/heads/android10-release/fastboot/fastboot.cpp#1500
> 
> Signed-off-by: Gary Bisson <gary.bisson at boundarydevices.com>
> ---
> Hi,
> 
> Another test was to run 'fastboot getvar partition-size:system' on a
> shipping Android phone, it will give you the size in bytes as well.
> 
> Regards,
> Gary
> ---
>  drivers/fastboot/fb_getvar.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/fastboot/fb_getvar.c b/drivers/fastboot/fb_getvar.c
> index 95cb434189..51a2bea86d 100644
> --- a/drivers/fastboot/fb_getvar.c
> +++ b/drivers/fastboot/fb_getvar.c
> @@ -94,7 +94,7 @@ static const struct {
>   *
>   * @param[in] part_name Info for which partition name to look for
>   * @param[in,out] response Pointer to fastboot response buffer
> - * @param[out] size If not NULL, will contain partition size (in blocks)
> + * @param[out] size If not NULL, will contain partition size
>   * @return Partition number or negative value on error
>   */
>  static int getvar_get_part_info(const char *part_name, char *response,
> @@ -108,13 +108,13 @@ static int getvar_get_part_info(const char *part_name, char *response,
>  	r = fastboot_mmc_get_part_info(part_name, &dev_desc, &part_info,
>  				       response);
>  	if (r >= 0 && size)
> -		*size = part_info.size;
> +		*size = part_info.size * part_info.blksz;
>  # elif CONFIG_IS_ENABLED(FASTBOOT_FLASH_NAND)
>  	struct part_info *part_info;
>  
>  	r = fastboot_nand_get_part_info(part_name, &part_info, response);
>  	if (r >= 0 && size)
> -		*size = part_info->size;
> +		*size = part_info->size * part_info.blksz;
>  # else
>  	fastboot_fail("this storage is not supported in bootloader", response);
>  	r = -ENODEV;
> -- 
> 2.26.2
> 


More information about the U-Boot mailing list