fastboot: mmc: Fix use of 64 bit division
PATCH 1/1 fastboot: mmc: Fix use of 64 bit division
Directly doing a 64 bit division (when CONFIG_SYS_64BIT_LBA is set) causes linking to fail when building u-boot for ARMv7 with a hard-float tool-chain.
This commit fixes this by properly using div_u64 for the division.
Note that an alternative fix would be to stop using lbaint_t for blkcnt / blks, since the passed in "download_bytes" is only 32 bits anyways. But we may want to support files / partitions larger then 4G in the near future and using div_u64 is future proof for when download_bytes' type gets changed to a lbaint_t itself.
--- common/fb_mmc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
common/fb_mmc.c +3 -1
@@ -11,6 +11,8 @@#include <aboot.h> #include <sparse_format.h> #include <mmc.h> +#include <div64.h> +#include <linux/math64.h> #ifndef CONFIG_FASTBOOT_GPT_NAME #define CONFIG_FASTBOOT_GPT_NAME GPT_ENTRY_NAME
@@ -64,7 +66,7 @@ static void write_raw_image(block_dev_desc_t *dev_desc, disk_partition_t *info,/* determine number of blocks to write */ blkcnt = ((download_bytes + (info->blksz -1 )) & ~(info->blksz -1 )); - blkcnt = blkcnt / info->blksz; + blkcnt =div_u64 (blkcnt, info->blksz);if (blkcnt > info->size) {error ("too large for partition: '%s'\n" , part_name);
Signature · 1 line
2.5.0
PATCH 1/1 fastboot: mmc: Fix use of 64 bit division
Quoted 6 lines · Hans de Goede
Directly doing a 64 bit division (when
CONFIG_SYS_64BIT_LBAis set) causes linking to fail when building u-boot for ARMv7 with a hard-float tool-chain.This commit fixes this by properly using
div_u64for the division.
Quoted 7 lines
Note that an alternative fix would be to stop using
lbaint_tfor blkcnt / blks, since the passed in "download_bytes" is only 32 bits anyways. But we may want to support files / partitions larger then 4G in the near future and usingdiv_u64is future proof for whendownload_bytes' type gets changed to albaint_titself.Signed-off-by Hans de Goede <[email protected]>
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151111/e559a83f/attachment.sig>
PATCH 1/1 fastboot: mmc: Fix use of 64 bit division
Quoted 14 lines · Tom Rini
Quoted 12 lines · Hans de Goede
Directly doing a 64 bit division (when
CONFIG_SYS_64BIT_LBAis set) causes linking to fail when building u-boot for ARMv7 with a hard-float tool-chain.This commit fixes this by properly using
div_u64for the division.Note that an alternative fix would be to stop using
lbaint_tfor blkcnt / blks, since the passed in "download_bytes" is only 32 bits anyways. But we may want to support files / partitions larger then 4G in the near future and usingdiv_u64is future proof for whendownload_bytes' type gets changed to albaint_titself.
Quoted 3 lines
Quoted 1 line
Signed-off-by Hans de Goede <[email protected]>Reviewed-by Tom Rini <[email protected]>
But a duplicate of https://patchwork.ozlabs.org/patch/537185/ sorry :(
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151112/542466cf/attachment.sig>