diff mbox series

counter: stm32-timer-cnt: fix device_node handling in probe_encoder()

Message ID 20241027-stm32-timer-cnt-of_node_put-v1-1-ebd903cdf7ac@gmail.com (mailing list archive)
State Handled Elsewhere
Headers show
Series counter: stm32-timer-cnt: fix device_node handling in probe_encoder() | expand

Commit Message

Javier Carrasco Oct. 27, 2024, 12:26 p.m. UTC
Device nodes accessed via of_get_compatible_child() require
of_node_put() to be called when the node is no longer required to avoid
leaving a reference to the node behind, leaking the resource.

In this case, the usage of 'tnode' is straightforward and there are no
error paths, allowing for a single of_node_put() when 'tnode' is no
longer required.

Cc: stable@vger.kernel.org
Fixes: 29646ee33cc3 ("counter: stm32-timer-cnt: add checks on quadrature encoder capability")
Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
---
 drivers/counter/stm32-timer-cnt.c | 1 +
 1 file changed, 1 insertion(+)


---
base-commit: a39230ecf6b3057f5897bc4744a790070cfbe7a8
change-id: 20241027-stm32-timer-cnt-of_node_put-8c6695e7a373

Best regards,

Comments

William Breathitt Gray Nov. 1, 2024, 5:59 a.m. UTC | #1
On Sun, 27 Oct 2024 13:26:49 +0100, Javier Carrasco wrote:
> Device nodes accessed via of_get_compatible_child() require
> of_node_put() to be called when the node is no longer required to avoid
> leaving a reference to the node behind, leaking the resource.
> 
> In this case, the usage of 'tnode' is straightforward and there are no
> error paths, allowing for a single of_node_put() when 'tnode' is no
> longer required.
> 
> [...]

Applied, thanks!

[1/1] counter: stm32-timer-cnt: fix device_node handling in probe_encoder()
      commit: 147359e23e5c9652ff8c5a98a51a7323bd51c94a

Best regards,
diff mbox series

Patch

diff --git a/drivers/counter/stm32-timer-cnt.c b/drivers/counter/stm32-timer-cnt.c
index 186e73d6ccb4..0d8206adccb3 100644
--- a/drivers/counter/stm32-timer-cnt.c
+++ b/drivers/counter/stm32-timer-cnt.c
@@ -694,6 +694,7 @@  static int stm32_timer_cnt_probe_encoder(struct device *dev,
 	}
 
 	ret = of_property_read_u32(tnode, "reg", &idx);
+	of_node_put(tnode);
 	if (ret) {
 		dev_err(dev, "Can't get index (%d)\n", ret);
 		return ret;