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