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

Luis Chamberlain
2023-02-24T17:21:48Z

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.

Luis