lkml.org 
[lkml]   [2024]   [Mar]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v7 0/8] devm_led_classdev_register() usage problem
Hello Lee

On 3/22/24 13:43, Lee Jones wrote:
> On Fri, 22 Mar 2024, George Stark wrote:
>
>> Hello Lee
>>
>> On 3/21/24 21:11, Lee Jones wrote:
>>> On Thu, 14 Mar 2024, George Stark 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 subsystem core code and don't remove led_set_brightness() from it
>>>> 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.
>>
>> ...
>>
>>>> locking/mutex: introduce devm_mutex_init()
>>>> leds: aw2013: use devm API to cleanup module's resources
>>>> leds: aw200xx: use devm API to cleanup module's resources
>>>> leds: lp3952: use devm API to cleanup module's resources
>>>> leds: lm3532: use devm API to cleanup module's resources
>>>> leds: nic78bx: use devm API to cleanup module's resources
>>>> leds: mlxreg: use devm_mutex_init() for mutex initialization
>>>> leds: an30259a: use devm_mutex_init() for mutex initialization
>>>>
>>>> drivers/leds/leds-an30259a.c | 14 ++++----------
>>>> drivers/leds/leds-aw200xx.c | 32 +++++++++++++++++++++-----------
>>>> drivers/leds/leds-aw2013.c | 25 +++++++++++++------------
>>>> drivers/leds/leds-lm3532.c | 29 +++++++++++++++++------------
>>>> drivers/leds/leds-lp3952.c | 21 +++++++++++----------
>>>> drivers/leds/leds-mlxreg.c | 14 +++++---------
>>>> drivers/leds/leds-nic78bx.c | 23 +++++++++++++----------
>>>> include/linux/mutex.h | 27 +++++++++++++++++++++++++++
>>>> kernel/locking/mutex-debug.c | 11 +++++++++++
>>>> 9 files changed, 122 insertions(+), 74 deletions(-)
>>>
>>> Doesn't apply to v6.8.
>>>
>>> What base was used for this?
>>
>> I've just pulled git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>> and v7 was applied cleanly. linux-next is ok too.
>>
>> v6.8 is lack of recent patch 6969d0a2ba1adc9ba6a49b9805f24080896c255c
>> v7's patch #2 depends on it
>
> No problem. I'll wait for v6.9-rc1.
>

Just checked the v7 patch series on released 6.9-rc1 and it's applied
cleanly. If anything i can help please let me know.

--
Best regards
George

\
 
 \ /
  Last update: 2024-05-27 16:15    [W:0.064 / U:0.144 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site