[PATCH] cmd: sf: Fix sf probe crash
Weizhao Ouyang
o451686892 at gmail.com
Thu Jan 4 13:28:25 CET 2024
On Thu, Jan 4, 2024 at 8:21 PM Michal Simek <michal.simek at amd.com> wrote:
>
>
>
> On 1/4/24 13:15, Weizhao Ouyang wrote:
> > On Thu, Jan 4, 2024 at 8:00 PM Michal Simek <michal.simek at amd.com> wrote:
> >>
> >>
> >>
> >> On 1/4/24 12:46, Weizhao Ouyang wrote:
> >>> Handle the return value of spi_flash_probe_bus_cs() to avoid sf probe
> >>> crashes.
> >>>
> >>> Signed-off-by: Weizhao Ouyang <o451686892 at gmail.com>
> >>> ---
> >>> cmd/sf.c | 5 +++--
> >>> 1 file changed, 3 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/cmd/sf.c b/cmd/sf.c
> >>> index 730996c02b..e3866899f6 100644
> >>> --- a/cmd/sf.c
> >>> +++ b/cmd/sf.c
> >>> @@ -135,8 +135,9 @@ static int do_spi_flash_probe(int argc, char *const argv[])
> >>> }
> >>> flash = NULL;
> >>> if (use_dt) {
> >>> - spi_flash_probe_bus_cs(bus, cs, &new);
> >>> - flash = dev_get_uclass_priv(new);
> >>> + ret = spi_flash_probe_bus_cs(bus, cs, &new);
> >>
> >> if (ret)
> >> return ret;
> >>
> >> don't you want to rather propagate that error?
> >>
> >
> > Well, since the spi_flash is empty, the following code will
> > print the error message and return.
>
> And you return 0 which means everything is fine. But is everything fine in this
> case? Or do you want to see the error?
>
> This is command it means you can simply use && and if previous command succeed
> you can call something else.
>
Hi Michal,
Please check the code that follows this commit snippet:
if (!flash) {
printf("Failed to initialize SPI flash at %u:%u (error %d)\n",
bus, cs, ret);
return 1;
}
it will print the error and return 1 as the return value.
BR,
Weizhao
More information about the U-Boot
mailing list