[PATCH v1 1/1] amba: bus: balance firmware node reference counting

Andy Shevchenko andriy.shevchenko at linux.intel.com
Fri Sep 22 07:31:07 PDT 2023


On Fri, Sep 22, 2023 at 09:18:47AM -0500, Rob Herring wrote:
> On Tue, Sep 19, 2023 at 3:02 PM Andy Shevchenko
> <andriy.shevchenko at linux.intel.com> wrote:
> > On Tue, Sep 19, 2023 at 11:01:37PM +0300, Andy Shevchenko wrote:
> > > On Thu, Aug 24, 2023 at 07:26:54PM +0300, Andy Shevchenko wrote:
> > > > Currently the ACPI code doesn't bump the reference count of
> > > > the firmware node, while OF counter part does. Not that it's
> > > > a problem right now, since ACPI doesn't really use the reference
> > > > counting for firmware nodes, it still makes sense to make code
> > > > robust against any changes done there. For this,
> > > >  - switch ACPI case to use device_set_node() to be unified with OF
> > > >  - move reference counting to amba_device_add()
> > > >  - switch to use firmware nodes instead of OF ones
> > > >
> > > > In the result we will have reference counting done in the same module
> > > > for all callers independently on the nature of firmware node behind.
> > >
> > > Any comment on this? I would like to have this applied so I can do something
> > > similar to the platform driver code.
> >
> > Ah, I see, I missed LKP run on this, I'll send a v2 perhaps later on this week.
> 
> What's the relationship/dependency with this and the other patches
> dealing with refcounting? Did the AMBA one land?

The OF refcounting is spread over platform code in unexpected places. So, we
have something like of_foo() bumps it, platform ->release() drops it. It sounds
to me as weird design to think of and AMBA is part of this mixture as it uses
platform_bus, BUT has it's own ->release(), besides the fact that it's used in
OF _and_ ACPI environments.

What I would expect to have is both are really agnostic to the fwnode type
and take and release reference in one place, but with OF <--> platform is
kinda more complicated that with AMBA.

-- 
With Best Regards,
Andy Shevchenko





More information about the linux-arm-kernel mailing list