Re: [PATCH] amba: make amba_bustype constant

From: Andy Shevchenko
Date: Tue Aug 27 2024 - 09:38:22 EST


On Tue, Aug 27, 2024 at 03:45:31PM +0800, Kunwu Chan wrote:
> On 2024/8/26 18:40, Andy Shevchenko wrote:
> > On Mon, Aug 26, 2024 at 06:08:11PM +0800, Kunwu Chan wrote:
> > > On 2024/8/23 21:48, Andy Shevchenko wrote:
> > > > On Fri, Aug 23, 2024 at 02:42:03PM +0800, Kunwu Chan wrote:

...

> > > > > -extern struct bus_type amba_bustype;
> > > > > +extern const struct bus_type amba_bustype;
> > > > Can we actually hide this from the outside, i.e. make it static in the C file,
> > > > and introduce the dev_is_amba() helper instead?
> > > >
> > > > P.S. You may look at the PNP bus case (some of the latest patches there)
> > > I found it problematic in the process of making changes.
> > >
> > > There have some usage of amba_bustype outside the AMBA code ,i.e:
> > > https://elixir.bootlin.com/linux/v6.10.4/source/drivers/iommu/iommu.c#L155
> > >
> > > So, If we make the amba_bustype inside the AMBA code, the outside cannot
> > > access.
> > Yes, that's the idea.
> >
> > > If only internal access is allowed, it will compile and report an error, how
> > > should I modify it next, and any suggestions?

(1) vvv

> > Make it patch series:
> > 1) patch that introduces exported function called dev_is_amba() (1 patch);
> > 2) convert user-by-user (N patches);
> > 3) hide the bus type and make it constant.

(1) ^^^

> Here[1] have many use of  amba_bustype directly outside the drivers/amba

Yes.

> When I try to hide the amba_bustype by move the extern from
> include/linux/amba to drivers/amba,
>
> we find some errors: "error: use of undeclared identifier amba_bustype".

Yes, that's why I put (1) to how solve this as we usually do in the Linux
kernel.

--
With Best Regards,
Andy Shevchenko