Re: [PATCH v1 2/5] extcon: Return -EPROBE_DEFER when extcon device is not found

From: Chanwoo Choi
Date: Wed Nov 14 2018 - 04:13:47 EST


On 2018ë 11ì 14ì 17:35, Andy Shevchenko wrote:
> On Wed, Nov 14, 2018 at 1:53 AM Chanwoo Choi <cw00.choi@xxxxxxxxxxx> wrote:
>
>> I was thinking about again to change from NULL to EPROBE_DEFER.
>>
>> extcon_get_extcon_dev() function was almost called in the probe function.
>> But, this function might be called on other position instead of probe.
>
> *Might be* sounds like a theoretical thing, care to share what is in you mind?
> Current users and more important the new coming one are *all* doing the same.
>
>> ENODEV is more correct error instead of EPROBE_DEFER.
>
> So, you are proposing to continue duplicating conversion from ENODEV
> to EPROBE_DEFER in *each* caller?

The extcon core don't know the caller situation is in either probe() or other position
in the caller driver. The caller driver should decide the kind of error value
by using the return value of extcon_get_extcon_dev().

extcon_get_extcon_dev() function cannot be modified for only one case.
If some device driver call extcon_get_extcon_dev() out of probe() fuction,
EPROBE_DEFER is not always correct.

>
>> Sorry. I'll withdraw my opinion related acked-by tag until we are clarifying it.
>
> I honestly don't know what to clarify here.
>
> When we would have a real case we can change API correspondingly.
> For now, the score is 5:0 with use cases in practice.
>
>> On 2018ë 11ì 12ì 09:24, Chanwoo Choi wrote:
>>> On 2018ë 11ì 11ì 03:10, Andy Shevchenko wrote:
>>>> All current users of extcon_get_extcon_dev() API considers
>>>> an extcon device a mandatory to appear. Thus, they all convert
>>>> NULL pointer to -EPROBE_DEFER error code.
>>>>
>>>> There is one more caller anticipated with the same requirements.
>>>>
>>>> To decrease a code duplication and a burden to the callers,
>>>> return -EPROBE_DEFER directly from extcon_get_extcon_dev().
>


--
Best Regards,
Chanwoo Choi
Samsung Electronics