diff mbox series

cpuidle: Fix reference count on CPU node

Message ID 20240917211325.639765-1-mikisabate@gmail.com (mailing list archive)
State New
Delegated to: Daniel Lezcano
Headers show
Series cpuidle: Fix reference count on CPU node | expand

Commit Message

Miquel Sabaté Solà Sept. 17, 2024, 9:13 p.m. UTC
For the qcom-spm driver, an early return was not calling the proper
of_node_put call for a previously acquired device node.

Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
---
 drivers/cpuidle/cpuidle-qcom-spm.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Miquel Sabaté Solà Oct. 1, 2024, 8:13 p.m. UTC | #1
On dt., de set. 17 2024, Miquel Sabaté Solà wrote:

> For the qcom-spm driver, an early return was not calling the proper
> of_node_put call for a previously acquired device node.
>
> Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
> ---
>  drivers/cpuidle/cpuidle-qcom-spm.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/cpuidle/cpuidle-qcom-spm.c b/drivers/cpuidle/cpuidle-qcom-spm.c
> index 1fc9968eae19..d3608f47d02b 100644
> --- a/drivers/cpuidle/cpuidle-qcom-spm.c
> +++ b/drivers/cpuidle/cpuidle-qcom-spm.c
> @@ -96,8 +96,10 @@ static int spm_cpuidle_register(struct device *cpuidle_dev, int cpu)
>  		return -ENODEV;
>  
>  	saw_node = of_parse_phandle(cpu_node, "qcom,saw", 0);
> -	if (!saw_node)
> +	if (!saw_node) {
> +		of_node_put(cpu_node);
>  		return -ENODEV;
> +	}
>  
>  	pdev = of_find_device_by_node(saw_node);
>  	of_node_put(saw_node);

Gently ping for a fix in the same spirit as [1].

Could you take a look whenever you have some time?

Thanks!
Miquel

[1] https://lore.kernel.org/all/20240917134246.584026-1-mikisabate@gmail.com/
Miquel Sabaté Solà Oct. 22, 2024, 1:05 p.m. UTC | #2
On dt., d’oct. 01 2024, Miquel Sabaté Solà wrote:

> On dt., de set. 17 2024, Miquel Sabaté Solà wrote:
>
>> For the qcom-spm driver, an early return was not calling the proper
>> of_node_put call for a previously acquired device node.
>>
>> Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
>> ---
>>  drivers/cpuidle/cpuidle-qcom-spm.c | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/cpuidle/cpuidle-qcom-spm.c b/drivers/cpuidle/cpuidle-qcom-spm.c
>> index 1fc9968eae19..d3608f47d02b 100644
>> --- a/drivers/cpuidle/cpuidle-qcom-spm.c
>> +++ b/drivers/cpuidle/cpuidle-qcom-spm.c
>> @@ -96,8 +96,10 @@ static int spm_cpuidle_register(struct device *cpuidle_dev, int cpu)
>>  		return -ENODEV;
>>  
>>  	saw_node = of_parse_phandle(cpu_node, "qcom,saw", 0);
>> -	if (!saw_node)
>> +	if (!saw_node) {
>> +		of_node_put(cpu_node);
>>  		return -ENODEV;
>> +	}
>>  
>>  	pdev = of_find_device_by_node(saw_node);
>>  	of_node_put(saw_node);
>
> Gently ping for a fix in the same spirit as [1].
>
> Could you take a look whenever you have some time?
>
> Thanks!
> Miquel
>
> [1] https://lore.kernel.org/all/20240917134246.584026-1-mikisabate@gmail.com/

Gently ping. Could someone take a look at this fix?

Thanks,
Miquel
Dmitry Baryshkov Oct. 26, 2024, 6:22 p.m. UTC | #3
On Tue, Sep 17, 2024 at 11:13:25PM +0200, Miquel Sabaté Solà wrote:
> For the qcom-spm driver, an early return was not calling the proper
> of_node_put call for a previously acquired device node.
> 
> Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
> ---
>  drivers/cpuidle/cpuidle-qcom-spm.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Miquel Sabaté Solà Nov. 14, 2024, 6:32 a.m. UTC | #4
On dt., d’oct. 22 2024, Miquel Sabaté Solà wrote:

> On dt., d’oct. 01 2024, Miquel Sabaté Solà wrote:
>
>> On dt., de set. 17 2024, Miquel Sabaté Solà wrote:
>>
>>> For the qcom-spm driver, an early return was not calling the proper
>>> of_node_put call for a previously acquired device node.
>>>
>>> Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
>>> ---
>>>  drivers/cpuidle/cpuidle-qcom-spm.c | 4 +++-
>>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/cpuidle/cpuidle-qcom-spm.c b/drivers/cpuidle/cpuidle-qcom-spm.c
>>> index 1fc9968eae19..d3608f47d02b 100644
>>> --- a/drivers/cpuidle/cpuidle-qcom-spm.c
>>> +++ b/drivers/cpuidle/cpuidle-qcom-spm.c
>>> @@ -96,8 +96,10 @@ static int spm_cpuidle_register(struct device *cpuidle_dev, int cpu)
>>>  		return -ENODEV;
>>>
>>>  	saw_node = of_parse_phandle(cpu_node, "qcom,saw", 0);
>>> -	if (!saw_node)
>>> +	if (!saw_node) {
>>> +		of_node_put(cpu_node);
>>>  		return -ENODEV;
>>> +	}
>>>
>>>  	pdev = of_find_device_by_node(saw_node);
>>>  	of_node_put(saw_node);
>>
>> Gently ping for a fix in the same spirit as [1].
>>
>> Could you take a look whenever you have some time?
>>
>> Thanks!
>> Miquel
>>
>> [1] https://lore.kernel.org/all/20240917134246.584026-1-mikisabate@gmail.com/
>
> Gently ping. Could someone take a look at this fix?
>
> Thanks,
> Miquel

Hello,

This is most probably too late for 6.12, but might this be included for
6.13?

Could you take a look?

Thanks,
Miquel
diff mbox series

Patch

diff --git a/drivers/cpuidle/cpuidle-qcom-spm.c b/drivers/cpuidle/cpuidle-qcom-spm.c
index 1fc9968eae19..d3608f47d02b 100644
--- a/drivers/cpuidle/cpuidle-qcom-spm.c
+++ b/drivers/cpuidle/cpuidle-qcom-spm.c
@@ -96,8 +96,10 @@  static int spm_cpuidle_register(struct device *cpuidle_dev, int cpu)
 		return -ENODEV;
 
 	saw_node = of_parse_phandle(cpu_node, "qcom,saw", 0);
-	if (!saw_node)
+	if (!saw_node) {
+		of_node_put(cpu_node);
 		return -ENODEV;
+	}
 
 	pdev = of_find_device_by_node(saw_node);
 	of_node_put(saw_node);