[PATCH 2/3] irqchip/gic-v5: iwb: Remove module boilerplate

Lorenzo Pieralisi posted 3 patches 2 months ago
[PATCH 2/3] irqchip/gic-v5: iwb: Remove module boilerplate
Posted by Lorenzo Pieralisi 2 months ago
The IWB driver cannot be compiled as a module and is as matter of fact a
builtin driver at present.

Make it explicitly so by removing useless boilerplate and by using the
builtin_platform_driver() helper to initialize its registration
functions.

Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Marc Zyngier <maz@kernel.org>
---
 drivers/irqchip/irq-gic-v5-iwb.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/irqchip/irq-gic-v5-iwb.c b/drivers/irqchip/irq-gic-v5-iwb.c
index ad9fdc14d1c6..c3a3b30e9f4e 100644
--- a/drivers/irqchip/irq-gic-v5-iwb.c
+++ b/drivers/irqchip/irq-gic-v5-iwb.c
@@ -263,7 +263,6 @@ static const struct of_device_id gicv5_iwb_of_match[] = {
 	{ .compatible = "arm,gic-v5-iwb" },
 	{ /* END */ }
 };
-MODULE_DEVICE_TABLE(of, gicv5_iwb_of_match);
 
 static struct platform_driver gicv5_iwb_platform_driver = {
 	.driver = {
@@ -274,4 +273,4 @@ static struct platform_driver gicv5_iwb_platform_driver = {
 	.probe				= gicv5_iwb_device_probe,
 };
 
-module_platform_driver(gicv5_iwb_platform_driver);
+builtin_platform_driver(gicv5_iwb_platform_driver);

-- 
2.48.0
Re: [PATCH 2/3] irqchip/gic-v5: iwb: Remove module boilerplate
Posted by Marc Zyngier 2 months ago
On Fri, 01 Aug 2025 08:58:19 +0100,
Lorenzo Pieralisi <lpieralisi@kernel.org> wrote:
> 
> The IWB driver cannot be compiled as a module and is as matter of fact a
> builtin driver at present.

What is blocking that?

> 
> Make it explicitly so by removing useless boilerplate and by using the
> builtin_platform_driver() helper to initialize its registration
> functions.
> 
> Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Marc Zyngier <maz@kernel.org>
> ---
>  drivers/irqchip/irq-gic-v5-iwb.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/irqchip/irq-gic-v5-iwb.c b/drivers/irqchip/irq-gic-v5-iwb.c
> index ad9fdc14d1c6..c3a3b30e9f4e 100644
> --- a/drivers/irqchip/irq-gic-v5-iwb.c
> +++ b/drivers/irqchip/irq-gic-v5-iwb.c
> @@ -263,7 +263,6 @@ static const struct of_device_id gicv5_iwb_of_match[] = {
>  	{ .compatible = "arm,gic-v5-iwb" },
>  	{ /* END */ }
>  };
> -MODULE_DEVICE_TABLE(of, gicv5_iwb_of_match);
>  
>  static struct platform_driver gicv5_iwb_platform_driver = {
>  	.driver = {
> @@ -274,4 +273,4 @@ static struct platform_driver gicv5_iwb_platform_driver = {
>  	.probe				= gicv5_iwb_device_probe,
>  };
>  
> -module_platform_driver(gicv5_iwb_platform_driver);
> +builtin_platform_driver(gicv5_iwb_platform_driver);
> 

I'd rather we make the driver buildable as a module if at all
possible, instead of forcing it as built-in for everyone. It would
definitely help pipe-cleaning the potential missing dependencies.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.
Re: [PATCH 2/3] irqchip/gic-v5: iwb: Remove module boilerplate
Posted by Lorenzo Pieralisi 2 months ago
On Fri, Aug 01, 2025 at 01:24:57PM +0100, Marc Zyngier wrote:
> On Fri, 01 Aug 2025 08:58:19 +0100,
> Lorenzo Pieralisi <lpieralisi@kernel.org> wrote:
> > 
> > The IWB driver cannot be compiled as a module and is as matter of fact a
> > builtin driver at present.
> 
> What is blocking that?

Yep, you read my mind I need to test this but AFAICS at the moment
the answer is: nothing.

> > Make it explicitly so by removing useless boilerplate and by using the
> > builtin_platform_driver() helper to initialize its registration
> > functions.
> > 
> > Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
> > Cc: Thomas Gleixner <tglx@linutronix.de>
> > Cc: Marc Zyngier <maz@kernel.org>
> > ---
> >  drivers/irqchip/irq-gic-v5-iwb.c | 3 +--
> >  1 file changed, 1 insertion(+), 2 deletions(-)
> > 
> > diff --git a/drivers/irqchip/irq-gic-v5-iwb.c b/drivers/irqchip/irq-gic-v5-iwb.c
> > index ad9fdc14d1c6..c3a3b30e9f4e 100644
> > --- a/drivers/irqchip/irq-gic-v5-iwb.c
> > +++ b/drivers/irqchip/irq-gic-v5-iwb.c
> > @@ -263,7 +263,6 @@ static const struct of_device_id gicv5_iwb_of_match[] = {
> >  	{ .compatible = "arm,gic-v5-iwb" },
> >  	{ /* END */ }
> >  };
> > -MODULE_DEVICE_TABLE(of, gicv5_iwb_of_match);
> >  
> >  static struct platform_driver gicv5_iwb_platform_driver = {
> >  	.driver = {
> > @@ -274,4 +273,4 @@ static struct platform_driver gicv5_iwb_platform_driver = {
> >  	.probe				= gicv5_iwb_device_probe,
> >  };
> >  
> > -module_platform_driver(gicv5_iwb_platform_driver);
> > +builtin_platform_driver(gicv5_iwb_platform_driver);
> > 
> 
> I'd rather we make the driver buildable as a module if at all
> possible, instead of forcing it as built-in for everyone. It would
> definitely help pipe-cleaning the potential missing dependencies.

Yes - I took a shortcut by removing boilerplate (that the
compiler/linker remove anyway) - it makes sense to rework the
build to make it possible to build as a module instead.

This patch can be dropped then, I will work on the follow-up.

Lorenzo