bus: arm-cci: Drop CPU node reference in cci_ace_init_ports()
PATCH 1/1 bus: arm-cci: Drop CPU node reference in cci_ace_init_ports()
cci_ace_init_ports() looks up each possible CPU's node with of_get_cpu_node(), which returns the node with its reference count raised, but never releases it: neither when the CPU has no ACE port nor after the port has been recorded. Before the commit below the loop used for_each_child_of_node(), which manages the references itself.
The node is only needed for the port lookup, so drop the reference right after __cci_ace_get_port().
---
Found by code review; compile-tested only (multi_v7_defconfig, W=1).
drivers/bus/arm-cci.c | 1 + 1 file changed, 1 insertion(+)
drivers/bus/arm-cci.c +1 -0
@@ -199,6 +199,7 @@ static void cci_ace_init_ports(void)continue ; port =__cci_ace_get_port (cpun,ACE_PORT ); +of_node_put (cpun);if (port <0 )continue ;
base-commit: f0100363d8c374bd8e9ea7c9ba02744f0b802ca4
Signature · 1 line
2.43.0
This patch was applied to soc/soc.git (for-next) by Arnd Bergmann <[email protected]>:
Hello:
This patch was applied to soc/soc.git (for-next)
by Arnd Bergmann <[email protected]>:
Quoted 10 lines · On Wed, 23 Sep 2026 12:35:15 -0400 you wrote:
cci_ace_init_ports()looks up each possible CPU's node withof_get_cpu_node(), which returns the node with its reference count raised, but never releases it: neither when the CPU has no ACE port nor after the port has been recorded. Before the commit below the loop usedfor_each_child_of_node(), which manages the references itself.The node is only needed for the port lookup, so drop the reference right after
__cci_ace_get_port().[...]
Here is the summary with links:
- [v1] bus: arm-cci: Drop CPU node reference in cci_ace_init_ports()
https://git.kernel.org/soc/soc/c/41d6c0fcd4d7
You are awesome, thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html