* [PATCH] ecard: use module_driver() to avoid repeated boilerplate code
@ 2026-09-06 4:01 Ethan Nelson-Moore
2026-09-06 4:06 ` sashiko-bot
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Ethan Nelson-Moore @ 2026-09-06 4:01 UTC (permalink / raw)
To: Kees Cook, linux-ide, linux-arm-kernel, netdev, linux-scsi,
linux-serial
Cc: Ethan Nelson-Moore, Damien Le Moal, Niklas Cassel, Russell King,
Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, James E.J. Bottomley, Martin K. Petersen,
Greg Kroah-Hartman, Jiri Slaby
Many Acorn expansion card drivers have module_init and module_exit
functions that only call ecard_register_driver() and
ecard_remove_driver(). The module_driver() macro automatically
generates these functions given the register and unregister functions.
Switch to it to simplify the code.
Signed-off-by: Ethan Nelson-Moore <enelsonmoore@gmail.com>
---
drivers/ata/pata_icside.c | 13 +------------
drivers/net/ethernet/i825xx/ether1.c | 13 +------------
drivers/net/ethernet/seeq/ether3.c | 13 +------------
drivers/scsi/arm/acornscsi.c | 13 +------------
drivers/scsi/arm/arxescsi.c | 14 +-------------
drivers/scsi/arm/cumana_1.c | 13 +------------
drivers/scsi/arm/cumana_2.c | 13 +------------
drivers/scsi/arm/eesox.c | 13 +------------
drivers/scsi/arm/oak.c | 14 +-------------
drivers/scsi/arm/powertec.c | 13 +------------
drivers/tty/serial/8250/8250_acorn.c | 13 +------------
11 files changed, 11 insertions(+), 134 deletions(-)
diff --git a/drivers/ata/pata_icside.c b/drivers/ata/pata_icside.c
index 70f056e47e6b..df7203a74f45 100644
--- a/drivers/ata/pata_icside.c
+++ b/drivers/ata/pata_icside.c
@@ -613,19 +613,8 @@ static struct ecard_driver pata_icside_driver = {
},
};
-static int __init pata_icside_init(void)
-{
- return ecard_register_driver(&pata_icside_driver);
-}
-
-static void __exit pata_icside_exit(void)
-{
- ecard_remove_driver(&pata_icside_driver);
-}
+module_driver(pata_icside_driver, ecard_register_driver, ecard_remove_driver);
MODULE_AUTHOR("Russell King <rmk@arm.linux.org.uk>");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("ICS PATA driver");
-
-module_init(pata_icside_init);
-module_exit(pata_icside_exit);
diff --git a/drivers/net/ethernet/i825xx/ether1.c b/drivers/net/ethernet/i825xx/ether1.c
index 3e7d7c4bafdc..d21aeb831531 100644
--- a/drivers/net/ethernet/i825xx/ether1.c
+++ b/drivers/net/ethernet/i825xx/ether1.c
@@ -1070,17 +1070,6 @@ static struct ecard_driver ether1_driver = {
},
};
-static int __init ether1_init(void)
-{
- return ecard_register_driver(ðer1_driver);
-}
-
-static void __exit ether1_exit(void)
-{
- ecard_remove_driver(ðer1_driver);
-}
-
-module_init(ether1_init);
-module_exit(ether1_exit);
+module_driver(ether1_driver, ecard_register_driver, ecard_remove_driver);
MODULE_LICENSE("GPL");
diff --git a/drivers/net/ethernet/seeq/ether3.c b/drivers/net/ethernet/seeq/ether3.c
index 20dad39b5ab9..b0d2cbc35914 100644
--- a/drivers/net/ethernet/seeq/ether3.c
+++ b/drivers/net/ethernet/seeq/ether3.c
@@ -882,17 +882,6 @@ static struct ecard_driver ether3_driver = {
},
};
-static int __init ether3_init(void)
-{
- return ecard_register_driver(ðer3_driver);
-}
-
-static void __exit ether3_exit(void)
-{
- ecard_remove_driver(ðer3_driver);
-}
-
-module_init(ether3_init);
-module_exit(ether3_exit);
+module_driver(ether3_driver, ecard_register_driver, ecard_remove_driver);
MODULE_LICENSE("GPL");
diff --git a/drivers/scsi/arm/acornscsi.c b/drivers/scsi/arm/acornscsi.c
index 79d7d7336b6a..8b899fbf092e 100644
--- a/drivers/scsi/arm/acornscsi.c
+++ b/drivers/scsi/arm/acornscsi.c
@@ -2902,18 +2902,7 @@ static struct ecard_driver acornscsi_driver = {
},
};
-static int __init acornscsi_init(void)
-{
- return ecard_register_driver(&acornscsi_driver);
-}
-
-static void __exit acornscsi_exit(void)
-{
- ecard_remove_driver(&acornscsi_driver);
-}
-
-module_init(acornscsi_init);
-module_exit(acornscsi_exit);
+module_driver(acornscsi_driver, ecard_register_driver, ecard_remove_driver);
MODULE_AUTHOR("Russell King");
MODULE_DESCRIPTION("AcornSCSI driver");
diff --git a/drivers/scsi/arm/arxescsi.c b/drivers/scsi/arm/arxescsi.c
index 925d0bd68aa5..2d3f5b0519d1 100644
--- a/drivers/scsi/arm/arxescsi.c
+++ b/drivers/scsi/arm/arxescsi.c
@@ -344,20 +344,8 @@ static struct ecard_driver arxescsi_driver = {
},
};
-static int __init init_arxe_scsi_driver(void)
-{
- return ecard_register_driver(&arxescsi_driver);
-}
-
-static void __exit exit_arxe_scsi_driver(void)
-{
- ecard_remove_driver(&arxescsi_driver);
-}
-
-module_init(init_arxe_scsi_driver);
-module_exit(exit_arxe_scsi_driver);
+module_driver(arxescsi_driver, ecard_register_driver, ecard_remove_driver);
MODULE_AUTHOR("Stefan Hanske");
MODULE_DESCRIPTION("ARXESCSI driver for Acorn machines");
MODULE_LICENSE("GPL");
-
diff --git a/drivers/scsi/arm/cumana_1.c b/drivers/scsi/arm/cumana_1.c
index d1a2a22ffe8c..62c11168f321 100644
--- a/drivers/scsi/arm/cumana_1.c
+++ b/drivers/scsi/arm/cumana_1.c
@@ -324,18 +324,7 @@ static struct ecard_driver cumanascsi1_driver = {
},
};
-static int __init cumanascsi_init(void)
-{
- return ecard_register_driver(&cumanascsi1_driver);
-}
-
-static void __exit cumanascsi_exit(void)
-{
- ecard_remove_driver(&cumanascsi1_driver);
-}
-
-module_init(cumanascsi_init);
-module_exit(cumanascsi_exit);
+module_driver(cumanascsi1_driver, ecard_register_driver, ecard_remove_driver);
MODULE_DESCRIPTION("Cumana SCSI-1 driver for Acorn machines");
MODULE_LICENSE("GPL");
diff --git a/drivers/scsi/arm/cumana_2.c b/drivers/scsi/arm/cumana_2.c
index e460068f6834..24945e1765ae 100644
--- a/drivers/scsi/arm/cumana_2.c
+++ b/drivers/scsi/arm/cumana_2.c
@@ -504,18 +504,7 @@ static struct ecard_driver cumanascsi2_driver = {
},
};
-static int __init cumanascsi2_init(void)
-{
- return ecard_register_driver(&cumanascsi2_driver);
-}
-
-static void __exit cumanascsi2_exit(void)
-{
- ecard_remove_driver(&cumanascsi2_driver);
-}
-
-module_init(cumanascsi2_init);
-module_exit(cumanascsi2_exit);
+module_driver(cumanascsi2_driver, ecard_register_driver, ecard_remove_driver);
MODULE_AUTHOR("Russell King");
MODULE_DESCRIPTION("Cumana SCSI-2 driver for Acorn machines");
diff --git a/drivers/scsi/arm/eesox.c b/drivers/scsi/arm/eesox.c
index 99be9da8757f..823ad179f24c 100644
--- a/drivers/scsi/arm/eesox.c
+++ b/drivers/scsi/arm/eesox.c
@@ -626,18 +626,7 @@ static struct ecard_driver eesoxscsi_driver = {
},
};
-static int __init eesox_init(void)
-{
- return ecard_register_driver(&eesoxscsi_driver);
-}
-
-static void __exit eesox_exit(void)
-{
- ecard_remove_driver(&eesoxscsi_driver);
-}
-
-module_init(eesox_init);
-module_exit(eesox_exit);
+module_driver(eesoxscsi_driver, ecard_register_driver, ecard_remove_driver);
MODULE_AUTHOR("Russell King");
MODULE_DESCRIPTION("EESOX 'Fast' SCSI driver for Acorn machines");
diff --git a/drivers/scsi/arm/oak.c b/drivers/scsi/arm/oak.c
index d69245007096..aea21bb13355 100644
--- a/drivers/scsi/arm/oak.c
+++ b/drivers/scsi/arm/oak.c
@@ -194,20 +194,8 @@ static struct ecard_driver oakscsi_driver = {
},
};
-static int __init oakscsi_init(void)
-{
- return ecard_register_driver(&oakscsi_driver);
-}
-
-static void __exit oakscsi_exit(void)
-{
- ecard_remove_driver(&oakscsi_driver);
-}
-
-module_init(oakscsi_init);
-module_exit(oakscsi_exit);
+module_driver(oakscsi_driver, ecard_register_driver, ecard_remove_driver);
MODULE_AUTHOR("Russell King");
MODULE_DESCRIPTION("Oak SCSI driver");
MODULE_LICENSE("GPL");
-
diff --git a/drivers/scsi/arm/powertec.c b/drivers/scsi/arm/powertec.c
index 823c65ff6c12..67f071a0543b 100644
--- a/drivers/scsi/arm/powertec.c
+++ b/drivers/scsi/arm/powertec.c
@@ -432,18 +432,7 @@ static struct ecard_driver powertecscsi_driver = {
},
};
-static int __init powertecscsi_init(void)
-{
- return ecard_register_driver(&powertecscsi_driver);
-}
-
-static void __exit powertecscsi_exit(void)
-{
- ecard_remove_driver(&powertecscsi_driver);
-}
-
-module_init(powertecscsi_init);
-module_exit(powertecscsi_exit);
+module_driver(powertecscsi_driver, ecard_register_driver, ecard_remove_driver);
MODULE_AUTHOR("Russell King");
MODULE_DESCRIPTION("Powertec SCSI driver");
diff --git a/drivers/tty/serial/8250/8250_acorn.c b/drivers/tty/serial/8250/8250_acorn.c
index fb596262b9c7..f634de6e159f 100644
--- a/drivers/tty/serial/8250/8250_acorn.c
+++ b/drivers/tty/serial/8250/8250_acorn.c
@@ -120,19 +120,8 @@ static struct ecard_driver serial_card_driver = {
},
};
-static int __init serial_card_init(void)
-{
- return ecard_register_driver(&serial_card_driver);
-}
-
-static void __exit serial_card_exit(void)
-{
- ecard_remove_driver(&serial_card_driver);
-}
+module_driver(serial_card_driver, ecard_register_driver, ecard_remove_driver);
MODULE_AUTHOR("Russell King");
MODULE_DESCRIPTION("Acorn 8250-compatible serial port expansion card driver");
MODULE_LICENSE("GPL");
-
-module_init(serial_card_init);
-module_exit(serial_card_exit);
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] ecard: use module_driver() to avoid repeated boilerplate code
2026-09-06 4:01 [PATCH] ecard: use module_driver() to avoid repeated boilerplate code Ethan Nelson-Moore
@ 2026-09-06 4:06 ` sashiko-bot
2026-09-06 10:16 ` Simon Horman
2026-09-07 2:12 ` Damien Le Moal
2 siblings, 0 replies; 4+ messages in thread
From: sashiko-bot @ 2026-09-06 4:06 UTC (permalink / raw)
To: Ethan Nelson-Moore; +Cc: linux-scsi, cassel, linux-ide, linux-serial, dlemoal
> Many Acorn expansion card drivers have module_init and module_exit
> functions that only call ecard_register_driver() and
> ecard_remove_driver(). The module_driver() macro automatically
> generates these functions given the register and unregister functions.
> Switch to it to simplify the code.
>
> Signed-off-by: Ethan Nelson-Moore <enelsonmoore@gmail.com>
Sashiko has reviewed this patch and found no issues. It looks great!
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260906040153.105692-1-enelsonmoore@gmail.com?part=1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] ecard: use module_driver() to avoid repeated boilerplate code
2026-09-06 4:01 [PATCH] ecard: use module_driver() to avoid repeated boilerplate code Ethan Nelson-Moore
2026-09-06 4:06 ` sashiko-bot
@ 2026-09-06 10:16 ` Simon Horman
2026-09-07 2:12 ` Damien Le Moal
2 siblings, 0 replies; 4+ messages in thread
From: Simon Horman @ 2026-09-06 10:16 UTC (permalink / raw)
To: Ethan Nelson-Moore
Cc: Kees Cook, linux-ide, linux-arm-kernel, netdev, linux-scsi,
linux-serial, Damien Le Moal, Niklas Cassel, Russell King,
Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, James E.J. Bottomley, Martin K. Petersen,
Greg Kroah-Hartman, Jiri Slaby
On Sat, Sep 05, 2026 at 09:01:46PM -0700, Ethan Nelson-Moore wrote:
> Many Acorn expansion card drivers have module_init and module_exit
> functions that only call ecard_register_driver() and
> ecard_remove_driver(). The module_driver() macro automatically
> generates these functions given the register and unregister functions.
> Switch to it to simplify the code.
>
> Signed-off-by: Ethan Nelson-Moore <enelsonmoore@gmail.com>
> ---
> drivers/ata/pata_icside.c | 13 +------------
> drivers/net/ethernet/i825xx/ether1.c | 13 +------------
> drivers/net/ethernet/seeq/ether3.c | 13 +------------
> drivers/scsi/arm/acornscsi.c | 13 +------------
> drivers/scsi/arm/arxescsi.c | 14 +-------------
> drivers/scsi/arm/cumana_1.c | 13 +------------
> drivers/scsi/arm/cumana_2.c | 13 +------------
> drivers/scsi/arm/eesox.c | 13 +------------
> drivers/scsi/arm/oak.c | 14 +-------------
> drivers/scsi/arm/powertec.c | 13 +------------
> drivers/tty/serial/8250/8250_acorn.c | 13 +------------
I think it would be best to split this patch up on a per-subsystem
of per driver basis. And send patches to appropriate subsystems.
In particular, please break out the net/ changes into a patchset
with one or two patches for net-next.
--
pw-bot: changes-requested
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] ecard: use module_driver() to avoid repeated boilerplate code
2026-09-06 4:01 [PATCH] ecard: use module_driver() to avoid repeated boilerplate code Ethan Nelson-Moore
2026-09-06 4:06 ` sashiko-bot
2026-09-06 10:16 ` Simon Horman
@ 2026-09-07 2:12 ` Damien Le Moal
2 siblings, 0 replies; 4+ messages in thread
From: Damien Le Moal @ 2026-09-07 2:12 UTC (permalink / raw)
To: Ethan Nelson-Moore, Kees Cook, linux-ide, linux-arm-kernel,
netdev, linux-scsi, linux-serial
Cc: Niklas Cassel, Russell King, Andrew Lunn, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, James E.J. Bottomley,
Martin K. Petersen, Greg Kroah-Hartman, Jiri Slaby
On 9/6/26 13:01, Ethan Nelson-Moore wrote:
> Many Acorn expansion card drivers have module_init and module_exit
> functions that only call ecard_register_driver() and
> ecard_remove_driver(). The module_driver() macro automatically
> generates these functions given the register and unregister functions.
> Switch to it to simplify the code.
>
Would be nice to have this separated into 4 different patches, one for each
subsystem modified.
Anyway, for the ATA bits,
Acked-by: Damien Le Moal <dlemoal@kernel.org>
--
Damien Le Moal
Western Digital Research
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-09-07 2:12 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-06 4:01 [PATCH] ecard: use module_driver() to avoid repeated boilerplate code Ethan Nelson-Moore
2026-09-06 4:06 ` sashiko-bot
2026-09-06 10:16 ` Simon Horman
2026-09-07 2:12 ` Damien Le Moal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox