Subject: Re: [PATCH v2 2/3] MIPS: cm/cpc: export some missing symbols to be able to use them from driver code

From: Bjorn Helgaas <[email-masked]>
Date: Thu, 28 Oct 2021 15:47:56 -0500

On Thu, Oct 28, 2021 at 11:59:17AM +0200, Sergio Paracuellos wrote:
> On Thu, Oct 28, 2021 at 11:34 AM Sergio Paracuellos
> <[email-masked]> wrote:
> > On Thu, Oct 28, 2021 at 11:24 AM Thomas Bogendoerfer
> > <[email-masked]> wrote:
> > > On Thu, Oct 28, 2021 at 06:11:18AM +0200, Sergio Paracuellos wrote:
> > > > On Thu, Oct 28, 2021 at 6:05 AM Yanteng Si <[email-masked]> wrote:
> > > > >
> > > > > Since commit 2bdd5238e756 ("PCI: mt7621: Add MediaTek MT7621 PCIe host controller driver")
> > > > > the MT7621 PCIe host controller driver is built as a module but modpost complains once these
> > > > > drivers become modules.
> > > > >
> > > > > ERROR: modpost: "mips_cm_unlock_other" [drivers/pci/controller/pcie-mt7621.ko] undefined!
> > > > > ERROR: modpost: "mips_cpc_base" [drivers/pci/controller/pcie-mt7621.ko] undefined!
> > > > > ERROR: modpost: "mips_cm_lock_other" [drivers/pci/controller/pcie-mt7621.ko] undefined!
> > > > > ERROR: modpost: "mips_cm_is64" [drivers/pci/controller/pcie-mt7621.ko] undefined!
> > > > > ERROR: modpost: "mips_gcr_base" [drivers/pci/controller/pcie-mt7621.ko] undefined!
> > > > >
> > > > > Let's just export them.
> > > > >
> > > > > Signed-off-by: Yanteng Si <[email-masked]>
> > > > > ---
> > > > >  arch/mips/kernel/mips-cm.c  | 5 +++++
> > > > >  arch/mips/kernel/mips-cpc.c | 1 +
> > > > >  2 files changed, 6 insertions(+)
> > > > >
> > > >
> > > > Reviewed-by: Sergio Paracuellos <[email-masked]>
> > >
> > > could we instead make the pcie-mt761 driver non modular ? Exporting
> > > all MIPS specific stuff for just making an essential driver modular
> > > doesn't IMHO make much sense.
> >
> > The driver is modular because I have been advised other times that new
> > drivers should be able to be compiled as modules and we should avoid
> > using 'bool' in Kconfig for new drivers. That's the only reason. I am
> > also always including as 'y' the driver since for me not having pci in
> > my boards has no sense... I am ok in changing Kconfig to be 'bool'
> > instead of 'tristate', but I don't know what should be the correct
> > thing to do in this case. Thoughts?
> 
> I guess we also want the driver to at least be compile tested in
> 'allmodconfig' and other similars...

Sounds like the systems that actually use this driver require it to be
built-in, and the only benefit of exporting these symbols is that we
would get better compile test coverage.

If that's the case, I agree that it's better to just make it
non-modular.

Bjorn