[PATCH] ecard: use module_driver() to avoid repeated boilerplate code
From: Ethan Nelson-Moore <hidden>
Date: 2026-09-06 04:02:25
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 <redacted> --- 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