diff mbox series

cpuidle: Fix reference count on CPU node

Message ID 20240917211325.639765-1-mikisabate@gmail.com
State New
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. 22, 2024, 1:05 p.m. UTC | #1
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
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);