Hi Han,

On 04:35 Sat 19 Sep     , Han Gao wrote:
> Storage capacities above 4 GiB are truncated when stored in size_t
> on 32-bit systems. Use a 64-bit accumulator and promote the block
> count before multiplication so 32-bit LBA configurations are also
> handled correctly.
> 
> Fixes: 86d462c05d57 ("cmd: add a fetch utility")
> 
No need blank line here.

> Signed-off-by: Han Gao <[email protected]>
> ---
>  cmd/ufetch.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/cmd/ufetch.c b/cmd/ufetch.c
> index d4b54f77b7b2..29ccbf654a4e 100644
> --- a/cmd/ufetch.c
> +++ b/cmd/ufetch.c
> @@ -95,7 +95,7 @@ static int do_ufetch(struct cmd_tbl *cmdtp, int flag, int 
> argc,
>       const char *model, *compatible;
>       char *ipaddr;
>       int n_cmds, n_cpus = 0, compatlen;
> -     size_t size = 0;
> +     u64 size = 0;
Although I don't like using 'u64' directly, but checked include/api_public.h:92
lbasize_t is 'unsigned long' no matter 32bit or 64bit platform, so seems we have
 no choice but have to stick with it..
        
>       ofnode np;
>       bool skip_ascii = false;
>  
> @@ -221,7 +221,7 @@ static int do_ufetch(struct cmd_tbl *cmdtp, int flag, int 
> argc,
>                       ret = uclass_find_device_by_seq(UCLASS_BLK, line - 
> STORAGE, &dev);
>                       if (!ret && dev) {
>                               desc = dev_get_uclass_plat(dev);
> -                             size = desc->lba * desc->blksz;
> +                             size = (u64)desc->lba * desc->blksz;
you can use CONFIG_SYS_64BIT_LBA instead of manually cast

>                               printf("%4s %d: " RESET, 
> blk_get_uclass_name(desc->uclass_id),
>                                       desc->lun);
>                               if (size)
> 
> ---
> base-commit: 211de43d0f954a00a490220c1aac9db298287c40
> change-id: 20260919-fixfetch-d7aa5b94d9b7
> 
> Best regards,
> --  
> Han Gao <[email protected]>
> 

-- 
Yixun Lan (dlan)

Reply via email to