[PATCH] cmd: sf: Fix sf probe crash
Michal Simek
michal.simek at amd.com
Thu Jan 4 13:48:05 CET 2024
On 1/4/24 13:28, Weizhao Ouyang wrote:
> 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.
ok. Then good.
Acked-by: Michal Simek <michal.simek at amd.com>
Thanks,
Michal
More information about the U-Boot
mailing list