[...]

>>> +                       /*
>>> +                        * Set an arbitrary 100ms data timeout for
>>> commands with
>>> +                        * busy signal and no indication of busy_timeout.
>>> +                        */
>>> +                       if (!timeout)
>>
>> This is a bug in the mmc core if this ever happen.
>>
>> Therefore I am particularly interested to find out if this is really
>> needed or it's just playing safe?
>
> You could call it playing safe.
> We haven't hit any case where it was set to zero but per mmc_switch()
> description you are allowed to set it to zero to let the host decide what it
> wants to use.

I check the code in the core. Apparently there are some cases when
INAND_CMD38_ARG* is used, but also some cases where I think the
timeout value becomes picked from the EXT_CSD without validating its
value.

Let's keep $subject patch as is, then allow me to submit a few changes
for core to deal with this properly.

>
>>> +                               timeout = 100000000U;
>>> +
>>> +                       set_data_timeout(host, timeout, 0);
>>> +               }
>>>                  return 0;
>>>          }

Kind regards
Uffe

Reply via email to