summaryrefslogtreecommitdiff
path: root/drivers/mfd
diff options
context:
space:
mode:
authorBastien Curutchet <bastien.curutchet@bootlin.com>2025-08-20 17:21:13 +0300
committerLee Jones <lee@kernel.org>2025-10-01 12:28:37 +0300
commit5f4bbee069836e51ed0b6d7e565a292f070ababc (patch)
treec21120c62232c9b5dd291ef912de6958f590d0ca /drivers/mfd
parent8a498184e2e8aac24db0faf295b7d0fb62dfe90d (diff)
downloadlinux-5f4bbee069836e51ed0b6d7e565a292f070ababc.tar.xz
mfd: core: Increment of_node's refcount before linking it to the platform device
When an MFD device is added, a platform_device is allocated. If this device is linked to a DT description, the corresponding OF node is linked to the new platform device but the OF node's refcount isn't incremented. As of_node_put() is called during the platform device release, it leads to a refcount underflow. Call of_node_get() to increment the OF node's refcount when the node is linked to the newly created platform device. Signed-off-by: Bastien Curutchet <bastien.curutchet@bootlin.com> Link: https://lore.kernel.org/r/20250820-mfd-refcount-v1-1-6dcb5eb41756@bootlin.com Signed-off-by: Lee Jones <lee@kernel.org>
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/mfd-core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c
index 76bd316a50af..7d14a1e7631e 100644
--- a/drivers/mfd/mfd-core.c
+++ b/drivers/mfd/mfd-core.c
@@ -131,6 +131,7 @@ allocate_of_node:
of_entry->np = np;
list_add_tail(&of_entry->list, &mfd_of_node_list);
+ of_node_get(np);
device_set_node(&pdev->dev, of_fwnode_handle(np));
#endif
return 0;