Re: [PATCH 09/27] irqchip: remove MODULE_LICENSE in non-modules

Masahiro Yamada
2023-03-21T08:28:45Z

On Sat, Feb 25, 2023 at 4:59 AM Luis Chamberlain <mcgrof@kernel.org> wrote:
>
> On Fri, Feb 24, 2023 at 05:35:34PM +0000, Marc Zyngier wrote:
> > On Fri, 24 Feb 2023 17:21:40 +0000,
> > Luis Chamberlain <mcgrof@kernel.org> wrote:
> > >
> > > On Fri, Feb 24, 2023 at 03:32:51PM +0000, Marc Zyngier wrote:
> > > > On Fri, 24 Feb 2023 15:07:53 +0000,
> > > > Nick Alcock <nick.alcock@oracle.com> wrote:
> > > > >
> > > > > Since commit 8b41fc4454e ("kbuild: create modules.builtin without
> > > > > Makefile.modbuiltin or tristate.conf"), MODULE_LICENSE declarations
> > > > > are used to identify modules. As a consequence, uses of the macro
> > > > > in non-modules will cause modprobe to misidentify their containing
> > > > > object file as a module when it is not (false positives), and modprobe
> > > > > might succeed rather than failing with a suitable error message.
> > > > >
> > > > > So remove it in the files in this commit, none of which can be built as
> > > > > modules.
> > > > >
> > > > > Signed-off-by: Nick Alcock <nick.alcock@oracle.com>
> > > > > Suggested-by: Luis Chamberlain <mcgrof@kernel.org>
> > > > > Cc: Luis Chamberlain <mcgrof@kernel.org>
> > > > > Cc: linux-modules@vger.kernel.org
> > > > > Cc: linux-kernel@vger.kernel.org
> > > > > Cc: Hitomi Hasegawa <hasegawa-hitomi@fujitsu.com>
> > > > > Cc: Thomas Gleixner <tglx@linutronix.de>
> > > > > Cc: Marc Zyngier <maz@kernel.org>
> > > > > Cc: Philipp Zabel <p.zabel@pengutronix.de>
> > > > > ---
> > > > > drivers/irqchip/irq-renesas-rzg2l.c | 1 -
> > > > > 1 file changed, 1 deletion(-)
> > > > >
> > > > > diff --git a/drivers/irqchip/irq-renesas-rzg2l.c b/drivers/irqchip/irq-renesas-rzg2l.c
> > > > > index 25fd8ee66565..4bbfa2b0a4df 100644
> > > > > --- a/drivers/irqchip/irq-renesas-rzg2l.c
> > > > > +++ b/drivers/irqchip/irq-renesas-rzg2l.c
> > > > > @@ -390,4 +390,3 @@ IRQCHIP_MATCH("renesas,rzg2l-irqc", rzg2l_irqc_init)
> > > > > IRQCHIP_PLATFORM_DRIVER_END(rzg2l_irqc)
> > > > > MODULE_AUTHOR("Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>");
> > > > > MODULE_DESCRIPTION("Renesas RZ/G2L IRQC Driver");
> > > > > -MODULE_LICENSE("GPL");
> > > >
> > > > I'm probably missing some context here, but I find it odd to drop
> > > > something that is a important piece of information because of what
> > > > looks like a tooling regression.
> > > >
> > > > It also means that once a random driver gets enabled as a module, it
> > > > won't load because it is now missing a MODULE_LICENSE() annotation.
> > > >
> > > > It feels like MODULE_LICENSE should instead degrade to an empty
> > > > statement when MODULE isn't defined. Why isn't this approach the
> > > > correct one?
> > > >
> > > > I expect the cover letter would have some pretty good information on
> > > > this, but lore.kernel.org doesn't seem to have it at the time I write
> > > > this ("Message-ID <20230224150811.80316-1-nick.alcock@oracle.com> not
> > > > found").
> > >
> > > The right thing is to not even have this and have the module license
> > > inferred from the SPDX tag. But for now we want to remove the tag from
> > > things we know for sure are not modules.
> >
> > I understand that you want to remove it. I don't get why this is the
> > right solution. Can you please assume that, in this particular
> > instance, I am a complete idiot and spell it out for me?
> >
> > Why isn't that a problem for modules that are compiled-in?
>
> Modules that are compiled in should succeed with a modprobe call as its
> already loaded. The construct we're looking for is a way to detect
> things which are built-in but *could* be modules. The annotation today
> is done at build time for something built-in using a file path using
> modinfo.

Why is it important to make "modprobe irq-renesas-rza1" fail?

With CONFIG_RENESAS_RZA1_IRQC=y, "modprobe irq-renesas-rza1"
exits with 0.
I do not think it is a big deal since irq-renesas-rza1
is available as built-in.

--
Best Regards
Masahiro Yamada