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

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].
Note that the function was already returning the proper size in bytes for NAND devices (see struct part_info details).
[1] https://android.googlesource.com/platform/system/core/+/refs/heads/android10...
Signed-off-by: Gary Bisson gary.bisson@boundarydevices.com --- Changelog v1->v2: - removed change for FASTBOOT_FLASH_NAND as not necessary (and therefore not building) --- drivers/fastboot/fb_getvar.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/fastboot/fb_getvar.c b/drivers/fastboot/fb_getvar.c index 52da34b1e37..d43f2cfee66 100644 --- a/drivers/fastboot/fb_getvar.c +++ b/drivers/fastboot/fb_getvar.c @@ -95,7 +95,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, @@ -109,7 +109,7 @@ 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;

Hi Gary,
On Thu, 27 Aug 2020 at 11:51, Gary Bisson gary.bisson@boundarydevices.com 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].
Note that the function was already returning the proper size in bytes for NAND devices (see struct part_info details).
[1] https://android.googlesource.com/platform/system/core/+/refs/heads/android10...
Signed-off-by: Gary Bisson gary.bisson@boundarydevices.com
Thank you for the patch, all look good! As I understand from the changelog, v2 fixes sunxi build error found by Lukasz? Other than that:
Reviewed-by: Sam Protsenko semen.protsenko@linaro.org
Changelog v1->v2:
- removed change for FASTBOOT_FLASH_NAND as not necessary (and therefore not building)
drivers/fastboot/fb_getvar.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/fastboot/fb_getvar.c b/drivers/fastboot/fb_getvar.c index 52da34b1e37..d43f2cfee66 100644 --- a/drivers/fastboot/fb_getvar.c +++ b/drivers/fastboot/fb_getvar.c @@ -95,7 +95,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, @@ -109,7 +109,7 @@ 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;
-- 2.28.0

Hi Sam,
On Tue, Sep 01, 2020 at 01:31:46PM +0300, Sam Protsenko wrote:
Hi Gary,
On Thu, 27 Aug 2020 at 11:51, Gary Bisson gary.bisson@boundarydevices.com 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].
Note that the function was already returning the proper size in bytes for NAND devices (see struct part_info details).
[1] https://android.googlesource.com/platform/system/core/+/refs/heads/android10...
Signed-off-by: Gary Bisson gary.bisson@boundarydevices.com
Thank you for the patch, all look good! As I understand from the changelog, v2 fixes sunxi build error found by Lukasz?
Indeed it does. The part_info struct for NAND devices was already returning a size in bytes instead of blocks.
Other than that:
Reviewed-by: Sam Protsenko semen.protsenko@linaro.org
Thanks, Gary
participants (2)
-
Gary Bisson
-
Sam Protsenko