Re: [PATCH v6 0/9] devm_led_classdev_register() usage problem

From: Andy Shevchenko
Date: Thu Mar 14 2024 - 06:38:01 EST


On Thu, Mar 14, 2024 at 10:46 AM George Stark <gnstark@xxxxxxxxxxxxxxxxx> wrote:
>
> This patch series fixes the problem of devm_led_classdev_register misusing.
>
> The basic problem is described in [1]. Shortly when devm_led_classdev_register()
> is used then led_classdev_unregister() called after driver's remove() callback.
> led_classdev_unregister() calls driver's brightness_set callback and that callback
> may use resources which were destroyed already in driver's remove().
>
> After discussion with maintainers [2] [3] we decided:
> 1) don't touch led subsytem core code and don't remove led_set_brightness() from it

subsystem

> but fix drivers
> 2) don't use devm_led_classdev_unregister
>
> So the solution is to use devm wrappers for all resources
> driver's brightness_set() depends on. And introduce dedicated devm wrapper
> for mutex as it's often used resource.

The leds related changes (except the last one) LGTM, hence FWIW,
Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>
(for patches 2-8)

> [1] https://lore.kernel.org/lkml/8704539b-ed3b-44e6-aa82-586e2f895e2b@xxxxxxxxxxxxxxxxx/T/
> [2] https://lore.kernel.org/lkml/8704539b-ed3b-44e6-aa82-586e2f895e2b@xxxxxxxxxxxxxxxxx/T/#mc132b9b350fa51931b4fcfe14705d9f06e91421f
> [3] https://lore.kernel.org/lkml/8704539b-ed3b-44e6-aa82-586e2f895e2b@xxxxxxxxxxxxxxxxx/T/#mdbf572a85c33f869a553caf986b6228bb65c8383

--
With Best Regards,
Andy Shevchenko