[PATCH 1/1] boot: fix bootdev_list()

Simon Glass sjg at chromium.org
Mon Jul 31 19:08:09 CEST 2023


Hi Heinrich,

On Sun, 30 Jul 2023 at 08:29, Heinrich Schuchardt
<heinrich.schuchardt at canonical.com> wrote:
>
> uclass_get_device_by_name() is meant to return 0 or a negative error code.
> simple_itoa() cannot handle negative numbers.
>
> This leads to output like:
>
>     => bootdev list -p
>
>     Seq  Probed  Status  Uclass    Name
>     ---  ------  ------  --------  ------------------
>       c   [   ]  18446744073709551614  spi_flash spi.bin at 0.bootdev
>
> Convert the status to a positive number. Now we get
>
>     Seq  Probed  Status  Uclass    Name
>     ---  ------  ------  --------  ------------------
>       c   [   ]       2  spi_flash spi.bin at 0.bootdev
>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> ---
>  boot/bootdev-uclass.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/boot/bootdev-uclass.c b/boot/bootdev-uclass.c
> index 9660ff7567..3f2c8d7153 100644
> --- a/boot/bootdev-uclass.c
> +++ b/boot/bootdev-uclass.c
> @@ -216,7 +216,7 @@ void bootdev_list(bool probe)
>         for (i = 0; dev; i++) {
>                 printf("%3x   [ %c ]  %6s  %-9.9s %s\n", dev_seq(dev),
>                        device_active(dev) ? '+' : ' ',
> -                      ret ? simple_itoa(ret) : "OK",
> +                      ret ? simple_itoa(-ret) : "OK",
>                        dev_get_uclass_name(dev_get_parent(dev)), dev->name);
>                 if (probe)
>                         ret = uclass_next_device_check(&dev);
> --
> 2.40.1
>

Thanks for the fix, but can you make it put the negative sign before
the value? It is confusing otherwise.

Regards,
Simon


More information about the U-Boot mailing list