+Greg Sorry about that. Should I resend this? On Wed, Apr 14, 2021 at 10:54:38AM +0300, Heikki Krogerus wrote: > 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. > > Reported-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx> > Fixes: e68d0119e328 ("software node: Introduce device_add_software_node()") > Signed-off-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > --- > drivers/base/swnode.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c > index 740333629b420..3cc11b813f28c 100644 > --- a/drivers/base/swnode.c > +++ b/drivers/base/swnode.c > @@ -1045,6 +1045,7 @@ int device_add_software_node(struct device *dev, const struct software_node *nod > } > > set_secondary_fwnode(dev, &swnode->fwnode); > + software_node_notify(dev, KOBJ_ADD); > > return 0; > } > @@ -1118,8 +1119,8 @@ int software_node_notify(struct device *dev, unsigned long action) > > switch (action) { > case KOBJ_ADD: > - ret = sysfs_create_link(&dev->kobj, &swnode->kobj, > - "software_node"); > + ret = sysfs_create_link_nowarn(&dev->kobj, &swnode->kobj, > + "software_node"); > if (ret) > break; > > -- > 2.30.2 -- heikki