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à Nov. 14, 2024, 6:32 a.m. UTC | #1
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);