On Thu, 2020-10-22 at 21:46 +0300, Andy Shevchenko wrote: > On Thu, Oct 22, 2020 at 9:06 PM Nicolas Saenz Julienne > wrote: > > When unbinding the firmware device we need to make sure it has no > > consumers left. Otherwise we'd leave them with a firmware handle > > pointing at freed memory. > > > > Keep a reference count of all consumers and make sure they all finished > > unbinding before we do. > > Wait, if it's a device, why do we need all these? > get_device() / put_device() along with module_get() / module_put() > should be sufficient, no? Could you expand here a little, I do see how I could use get_device()'s reference count. But it seems to me I'd be digging way too deep into kobj in order to get the functionality I need. If you meant to say that it should be automatically taken care by the platform bus, just FYI we're using 'simple-mfd' in DT. Where firmware supplier is the parent and all consumers are children. Regards, Nicolas