Re: [PATCH 02/13] leds: el15203000: Fix devm vs. non-devm ordering

From: Oleh Kravchenko
Date: Wed Nov 09 2022 - 05:44:11 EST




> 9 лист. 2022 р. о 12:25 wangyufen <wangyufen@xxxxxxxxxx> написав(ла):
>
>
> 在 2022/11/9 17:39, Oleh Kravchenko 写道:
>> Hello all!
>>
>>> 9 лист. 2022 р. о 10:48 Wang Yufen <wangyufen@xxxxxxxxxx> написав(ла):
>>>
>>> return el15203000_probe_dt(priv);
>>> }
>>>
>>> -static void el15203000_remove(struct spi_device *spi)
>> Is remove() callback from struct spi_driver deprecated?
>
> It is not that remove() callback is deprecated,
> it's that after wrapping mutex_destroy() call with devm_add_action_or_reset(),
> remove() callback is unnecessary here.

When remove() is called, the memory allocated by devm_*() is valid.
So what you try to fix here?

>
>>
>>> -{
>>> - struct el15203000 *priv = spi_get_drvdata(spi);
>>> -
>>> - mutex_destroy(&priv->lock);
>>> -}
>>>
>>> static const struct of_device_id el15203000_dt_ids[] = {
>>> { .compatible = "crane,el15203000", },
>>> @@ -331,7 +336,6 @@ static void el15203000_remove(struct spi_device *spi)
>>>
>>> static struct spi_driver el15203000_driver = {
>>> .probe = el15203000_probe,
>>> - .remove = el15203000_remove,
>>> .driver = {
>>> .name = KBUILD_MODNAME,
>>> .of_match_table = el15203000_dt_ids,
>>> --
>>> 1.8.3.1
>>>
>>