Commit b622b245 authored by Heikki Krogerus's avatar Heikki Krogerus Committed by Greg Kroah-Hartman

software node: Allow node addition to already existing device

If the node is added to an already exiting device, the node
needs to be also linked to the device separately.

This will make sure the reference count is kept in balance
also when the node is injected to a device afterwards.

Fixes: e68d0119 ("software node: Introduce device_add_software_node()")
Reported-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20210414075438.64547-1-heikki.krogerus@linux.intel.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 586c4028
...@@ -1045,6 +1045,7 @@ int device_add_software_node(struct device *dev, const struct software_node *nod ...@@ -1045,6 +1045,7 @@ int device_add_software_node(struct device *dev, const struct software_node *nod
} }
set_secondary_fwnode(dev, &swnode->fwnode); set_secondary_fwnode(dev, &swnode->fwnode);
software_node_notify(dev, KOBJ_ADD);
return 0; return 0;
} }
...@@ -1118,8 +1119,8 @@ int software_node_notify(struct device *dev, unsigned long action) ...@@ -1118,8 +1119,8 @@ int software_node_notify(struct device *dev, unsigned long action)
switch (action) { switch (action) {
case KOBJ_ADD: case KOBJ_ADD:
ret = sysfs_create_link(&dev->kobj, &swnode->kobj, ret = sysfs_create_link_nowarn(&dev->kobj, &swnode->kobj,
"software_node"); "software_node");
if (ret) if (ret)
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment