[PATCH 6/8] mfd: max8925: Fix wakeup source leaks on device unbind

Krzysztof Kozlowski posted 8 patches 10 months, 1 week ago
[PATCH 6/8] mfd: max8925: Fix wakeup source leaks on device unbind
Posted by Krzysztof Kozlowski 10 months, 1 week ago
Device can be unbound, so driver must also release memory for the wakeup
source.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 drivers/mfd/max8925-i2c.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/mfd/max8925-i2c.c b/drivers/mfd/max8925-i2c.c
index 556aea7ec0a0473edc9291cae0c82fe9b4ecb346..ab19ff0c786732be53e58a0162d2658650d88f47 100644
--- a/drivers/mfd/max8925-i2c.c
+++ b/drivers/mfd/max8925-i2c.c
@@ -201,6 +201,7 @@ static void max8925_remove(struct i2c_client *client)
 	struct max8925_chip *chip = i2c_get_clientdata(client);
 
 	max8925_device_exit(chip);
+	device_init_wakeup(&client->dev, false);
 	i2c_unregister_device(chip->adc);
 	i2c_unregister_device(chip->rtc);
 }

-- 
2.45.2
Re: [PATCH 6/8] mfd: max8925: Fix wakeup source leaks on device unbind
Posted by Lee Jones 10 months ago
On Sun, 06 Apr 2025, Krzysztof Kozlowski wrote:

> Device can be unbound, so driver must also release memory for the wakeup
> source.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
>  drivers/mfd/max8925-i2c.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/mfd/max8925-i2c.c b/drivers/mfd/max8925-i2c.c
> index 556aea7ec0a0473edc9291cae0c82fe9b4ecb346..ab19ff0c786732be53e58a0162d2658650d88f47 100644
> --- a/drivers/mfd/max8925-i2c.c
> +++ b/drivers/mfd/max8925-i2c.c
> @@ -201,6 +201,7 @@ static void max8925_remove(struct i2c_client *client)
>  	struct max8925_chip *chip = i2c_get_clientdata(client);
>  
>  	max8925_device_exit(chip);
> +	device_init_wakeup(&client->dev, false);

Why not devm_* instead?

>  	i2c_unregister_device(chip->adc);
>  	i2c_unregister_device(chip->rtc);
>  }
> 
> -- 
> 2.45.2
> 

-- 
Lee Jones [李琼斯]
Re: [PATCH 6/8] mfd: max8925: Fix wakeup source leaks on device unbind
Posted by Krzysztof Kozlowski 9 months, 2 weeks ago
On 15/04/2025 17:48, Lee Jones wrote:
> On Sun, 06 Apr 2025, Krzysztof Kozlowski wrote:
> 
>> Device can be unbound, so driver must also release memory for the wakeup
>> source.
>>
>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>> ---
>>  drivers/mfd/max8925-i2c.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/mfd/max8925-i2c.c b/drivers/mfd/max8925-i2c.c
>> index 556aea7ec0a0473edc9291cae0c82fe9b4ecb346..ab19ff0c786732be53e58a0162d2658650d88f47 100644
>> --- a/drivers/mfd/max8925-i2c.c
>> +++ b/drivers/mfd/max8925-i2c.c
>> @@ -201,6 +201,7 @@ static void max8925_remove(struct i2c_client *client)
>>  	struct max8925_chip *chip = i2c_get_clientdata(client);
>>  
>>  	max8925_device_exit(chip);
>> +	device_init_wakeup(&client->dev, false);
> 
> Why not devm_* instead?


Hi Lee,

I am sorry I reply so late - I totally missed your comment/email.

I am not using devm intentionally, because there is cleanup path and
devm() would change the order of things are released.

The rule of thumb is: use devm or manual, don't mix, otherwise you ask
for trouble in weird cases.

Same for the other comment.

Best regards,
Krzysztof