On Fri, Jul 16, 2021 at 2:17 PM Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > > On Fri, Jul 16, 2021 at 01:16:02PM +0300, laurentiu.tudor@xxxxxxx wrote: > > From: Laurentiu Tudor <laurentiu.tudor@xxxxxxx> > > > > software_node_notify(), on KOBJ_REMOVE drops the refcount twice on managed > > software nodes, thus leading to underflow errors. Balance the refcount by > > bumping it in the device_create_managed_software_node() function. > > > > The error [1] was encountered after adding a .shutdown() op to our > > fsl-mc-bus driver. > > Looking into the history of adding ->shutdown() to dwc3 driver (it got reverted > later on), I can tell that probably something is wrong in the ->shutdown() > method itself. > > -- > With Best Regards, > Andy Shevchenko > > Isn't the other alternative to just remove the second kobject_put from KOBJ_REMOVE ? @@ -1149,7 +1147,6 @@ int software_node_notify(struct device *dev, unsigned long action) if (swnode->managed) { set_secondary_fwnode(dev, NULL); - kobject_put(&swnode->kobj); } break; default: If we aren't being incremented in device_create_managed_software_node() then should we be decremented here? -Jon