From: Jon Schindler <jkschind@gmail.com>
To: linux-kernel@vger.kernel.org, philb@gnu.org, bzolnier@gmail.com,
airlied@linux.ie, paul@paulbristow.net,
James.Bottomley@HansenPartnership.com,
linux-janitors@vger.kernel.org, kernel-mentors@selenic.com,
trivial@kernel.org
Subject: [resend and request for comments][PATCH 1/1] Removed deprecated init_module and cleanup_module functions and updated to use module_init and module_exit.
Date: Wed, 27 Feb 2008 22:16:29 -0600 [thread overview]
Message-ID: <47C6359D.7010807@gmail.com> (raw)
From: Jon Schindler <jkschind@gmail.com>
I apologize, there was an error in the original patch. As this is the first patch I have submitted,
please let me know if there are any errors that I have made or tips that I can follow for next time.
As part of the kernel janitor projected listed at http://kernelnewbies.org/KernelJanitors/Todo/ApiChanges
I have made the following changes:
-prototypes for init_module were replaced with static function definitions
that are exported using module_init()
-prototypes exported using cleanup_module(void) were replaced with a
static internal function that is exported through module_exit().
The following files are affected:
drivers/block/floppy.c
drivers/block/ps2esdi.c
drivers/char/drm/drm_drv.c
drivers/char/ip2/ip2main.c
drivers/ide/ide.c
drivers/net/3c501.c
drivers/net/3c505.c
drivers/net/3c507.c
drivers/net/3c515.c
drivers/net/3c523.c
drivers/net/3c527.c
drivers/net/82596.c
Signed-off-by: Jon Schindler <jkschind@gmail.com>
---
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
index 32c79a5..9a3d509 100644
--- a/drivers/block/floppy.c
+++ b/drivers/block/floppy.c
@@ -4528,14 +4528,15 @@ static void __init parse_floppy_cfg_string(char *cfg)
}
}http://kernelnewbies.org/KernelJanitors/Todo/ApiChanges
-int __init init_module(void)
+static int __init floppy_module_init(void)
{
if (floppy)
parse_floppy_cfg_string(floppy);
return floppy_init();
}
+module_init(floppy_module_init);
-void cleanup_module(void)
+static void __exit floppy_module_exit(void)
{
int drive;
@@ -4567,6 +4568,7 @@ void cleanup_module(void)
wait_for_completion(&device_release);
}
+module_exit(floppy_module_exit);
module_param(floppy, charp, 0);
module_param(FLOPPY_IRQ, int, 0);removed some deprecated api calls.
diff --git a/drivers/block/ps2esdi.c b/drivers/block/ps2esdi.c
index 3c796e2..edcd150 100644
--- a/drivers/block/ps2esdi.c
+++ b/drivers/block/ps2esdi.c
@@ -135,7 +135,7 @@ static struct block_device_operations ps2esdi_fops =
static struct gendisk *ps2esdi_gendisk[2];
-/* initialization routine called by ll_rw_blk.c */
+/* initialization routine used when compiled into kernel */
static int __init ps2esdi_init(void)
{
@@ -180,7 +180,10 @@ module_param_array(head, int, NULL, 0);
module_param_array(sect, int, NULL, 0);
MODULE_LICENSE("GPL");
-int init_module(void) {
+/* extra work needs to be done in addition to ps2esdi_init
+ * when compiled as a module */
+static int __init ps2esdi_init_module(void)
+{
int drive;
for(drive = 0; drive < MAX_HD; drive++) {
@@ -198,9 +201,10 @@ int init_module(void) {
}
return ps2esdi_init();
}
+module_init(ps2esdi_init_module);
-void
-cleanup_module(void) {
+static void __exit ps2esdi_cleanup_module(void)
+{
int i;
if(ps2esdi_slot) {
mca_mark_as_unused(ps2esdi_slot);
@@ -216,6 +220,8 @@ cleanup_module(void) {
put_disk(ps2esdi_gendisk[i]);
}
}
+module_exit(ps2esdi_cleanup_module);
+
#endif /* MODULE */
/* handles boot time command line parameters */
diff --git a/drivers/char/ip2/ip2main.c b/drivers/char/ip2/ip2main.c
index b1d6cad..048e7c8 100644
--- a/drivers/char/ip2/ip2main.c
+++ b/drivers/char/ip2/ip2main.c
@@ -354,14 +354,15 @@ have_requested_irq( char irq )
/* the driver initialisation function and returns what it returns. */
/******************************************************************************/
#ifdef MODULE
-int
-init_module(void)
+static int __init
+ip2_init_module(void)
{
#ifdef IP2DEBUG_INIT
printk (KERN_DEBUG "Loading module ...\n" );
#endif
return 0;
}
+module_init(ip2_init_module);
#endif /* MODULE */
/******************************************************************************/
@@ -380,8 +381,8 @@ init_module(void)
/* driver should be returned since it may be unloaded from memory. */
/******************************************************************************/
#ifdef MODULE
-void
-cleanup_module(void)
+void __exit
+ip2_cleanup_module(void)
{
int err;
int i;
@@ -451,6 +452,7 @@ cleanup_module(void)
printk (KERN_DEBUG "IP2 Unloaded\n" );
#endif
}
+module_exit(ip2_cleanup_module);
#endif /* MODULE */
static const struct tty_operations ip2_ops = {
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index 477833f..cff8da2 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -1641,7 +1641,7 @@ static char *options = NULL;
module_param(options, charp, 0);
MODULE_LICENSE("GPL");
-static void __init parse_options (char *line)
+static void __init parse_options(char *line)
{
char *next = line;
@@ -1655,13 +1655,14 @@ static void __init parse_options (char *line)
}
}
-int __init init_module (void)
+static int __init ide_module_init(void)
{
parse_options(options);
return ide_init();
}
+module_init(ide_module_init);
-void __exit cleanup_module (void)
+static void __exit ide_module_exit(void)
{
int index;
@@ -1672,6 +1673,7 @@ void __exit cleanup_module (void)
bus_unregister(&ide_bus_type);
}
+module_exit(ide_module_exit);
#else /* !MODULE */
diff --git a/drivers/net/3c501.c b/drivers/net/3c501.c
index 7d25368..537b4e7 100644
--- a/drivers/net/3c501.c
+++ b/drivers/net/3c501.c
@@ -867,13 +867,14 @@ MODULE_PARM_DESC(irq, "EtherLink IRQ number");
* here also causes the module to be unloaded
*/
-int __init init_module(void)
+static int __init tc501_module_init(void)
{
dev_3c501 = el1_probe(-1);
if (IS_ERR(dev_3c501))
return PTR_ERR(dev_3c501);
return 0;
}
+module_init(tc501_module_init);
/**
* cleanup_module:
@@ -882,13 +883,14 @@ int __init init_module(void)
* and then free up the resources we took when the card was found.
*/
-void __exit cleanup_module(void)
+static void __exit tc501_module_exit(void)
{
struct net_device *dev = dev_3c501;
unregister_netdev(dev);
release_region(dev->base_addr, EL1_IO_EXTENT);
free_netdev(dev);
}
+module_exit(tc501_module_exit);
#endif /* MODULE */
diff --git a/drivers/net/3c505.c b/drivers/net/3c505.c
index 9c65734..7eed97f 100644
--- a/drivers/net/3c505.c
+++ b/drivers/net/3c505.c
@@ -1615,7 +1615,7 @@ MODULE_PARM_DESC(io, "EtherLink Plus I/O base address(es)");
MODULE_PARM_DESC(irq, "EtherLink Plus IRQ number(s) (assigned)");
MODULE_PARM_DESC(dma, "EtherLink Plus DMA channel(s)");
-int __init init_module(void)
+static int __init tc505_module_init(void)
{
int this_dev, found = 0;
@@ -1651,8 +1651,9 @@ int __init init_module(void)
return -ENODEV;
return 0;
}
+module_init(tc505_module_init);
-void __exit cleanup_module(void)
+static void __exit tc505_module_exit(void)
{
int this_dev;
@@ -1665,6 +1666,7 @@ void __exit cleanup_module(void)
}
}
}
+module_exit(tc505_module_exit);
#endif /* MODULE */
MODULE_LICENSE("GPL");
diff --git a/drivers/net/3c507.c b/drivers/net/3c507.c
index 030c147..07b6d7d 100644
--- a/drivers/net/3c507.c
+++ b/drivers/net/3c507.c
@@ -918,16 +918,16 @@ module_param(irq, int, 0);
MODULE_PARM_DESC(io, "EtherLink16 I/O base address");
MODULE_PARM_DESC(irq, "(ignored)");
-int __init init_module(void)
+static int __init tc507_module_init(void)
{
if (io == 0)
printk("3c507: You should not use auto-probing with insmod!\n");
dev_3c507 = el16_probe(-1);
return IS_ERR(dev_3c507) ? PTR_ERR(dev_3c507) : 0;
}
+module_init(tc507_module_init);
-void __exit
-cleanup_module(void)
+static void __exit tc507_module_exit(void)
{
struct net_device *dev = dev_3c507;
unregister_netdev(dev);
@@ -936,6 +936,8 @@ cleanup_module(void)
release_region(dev->base_addr, EL16_IO_EXTENT);
free_netdev(dev);
}
+module_exit(tc507_module_exit);
+
#endif /* MODULE */
MODULE_LICENSE("GPL");
diff --git a/drivers/net/3c515.c b/drivers/net/3c515.c
index 6ab84b6..107d1ff 100644
--- a/drivers/net/3c515.c
+++ b/drivers/net/3c515.c
@@ -415,7 +415,7 @@ MODULE_PARM_DESC(max_interrupt_work, "3c515 maximum events handled per interrupt
/* we will need locking (and refcounting) if we ever use it for more */
static LIST_HEAD(root_corkscrew_dev);
-int init_module(void)
+static int __init tc515_module_init(void)
{
int found = 0;
if (debug >= 0)
@@ -426,6 +426,7 @@ int init_module(void)
found++;
return found ? 0 : -ENODEV;
}
+module_init(tc515_module_init);
#else
struct net_device *tc515_probe(int unit)
@@ -1565,7 +1566,7 @@ static const struct ethtool_ops netdev_ethtool_ops = {
#ifdef MODULE
-void cleanup_module(void)
+static void __exit tc515_module_exit(void)
{
while (!list_empty(&root_corkscrew_dev)) {
struct net_device *dev;
@@ -1579,6 +1580,8 @@ void cleanup_module(void)
free_netdev(dev);
}
}
+module_exit(tc515_module_exit);
+
#endif /* MODULE */
/*
diff --git a/drivers/net/3c523.c b/drivers/net/3c523.c
index 239fc42..cb4beba 100644
--- a/drivers/net/3c523.c
+++ b/drivers/net/3c523.c
@@ -1268,7 +1268,7 @@ MODULE_PARM_DESC(io, "EtherLink/MC I/O base address(es)");
MODULE_PARM_DESC(irq, "EtherLink/MC IRQ number(s)");
MODULE_LICENSE("GPL");
-int __init init_module(void)
+static int __init tc523_module_init(void)
{
int this_dev,found = 0;
@@ -1295,8 +1295,9 @@ int __init init_module(void)
return -ENXIO;
} else return 0;
}
+module_init(tc523_module_init);
-void __exit cleanup_module(void)
+static void __exit tc523_module_exit(void)
{
int this_dev;
for (this_dev=0; this_dev<MAX_3C523_CARDS; this_dev++) {
@@ -1308,5 +1309,6 @@ void __exit cleanup_module(void)
}
}
}
+module_exit(tc523_module_exit);
#endif /* MODULE */
diff --git a/drivers/net/3c527.c b/drivers/net/3c527.c
index b72b89d..4740a80 100644
--- a/drivers/net/3c527.c
+++ b/drivers/net/3c527.c
@@ -1631,23 +1631,24 @@ static const struct ethtool_ops netdev_ethtool_ops = {
static struct net_device *this_device;
/**
- * init_module - entry point
+ * tc527_module_init - entry point
*
* Probe and locate a 3c527 card. This really should probe and locate
* all the 3c527 cards in the machine not just one of them. Yes you can
* insmod multiple modules for now but it's a hack.
*/
-int __init init_module(void)
+static int __init tc527_module_init(void)
{
this_device = mc32_probe(-1);
if (IS_ERR(this_device))
return PTR_ERR(this_device);
return 0;
}
+module_init(tc527_module_init);
/**
- * cleanup_module - free resources for an unload
+ * tc527_module_exit - free resources for an unload
*
* Unloading time. We release the MCA bus resources and the interrupt
* at which point everything is ready to unload. The card must be stopped
@@ -1657,11 +1658,12 @@ int __init init_module(void)
* transmit operations are allowed to start scribbling into memory.
*/
-void __exit cleanup_module(void)
+static void __exit tc527_module_exit(void)
{
unregister_netdev(this_device);
cleanup_card(this_device);
free_netdev(this_device);
}
+module_exit(tc527_module_exit);
#endif /* MODULE */
diff --git a/drivers/net/82596.c b/drivers/net/82596.c
index 2797da7..344308a 100644
--- a/drivers/net/82596.c
+++ b/drivers/net/82596.c
@@ -1567,7 +1567,7 @@ static int debug = -1;
module_param(debug, int, 0);
MODULE_PARM_DESC(debug, "i82596 debug mask");
-int __init init_module(void)
+static int __init i82596_module_init(void)
{
if (debug >= 0)
i596_debug = debug;
@@ -1576,8 +1576,9 @@ int __init init_module(void)
return PTR_ERR(dev_82596);
return 0;
}
+module_init(i82596_module_init);
-void __exit cleanup_module(void)
+static void __exit i82596_module_exit(void)
{
unregister_netdev(dev_82596);
#ifdef __mc68000__
@@ -1595,7 +1596,7 @@ void __exit cleanup_module(void)
#endif
free_netdev(dev_82596);
}
-
+module_exit(i82596_module_exit);
#endif /* MODULE */
/*
reply other threads:[~2008-02-28 4:18 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47C6359D.7010807@gmail.com \
--to=jkschind@gmail.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=airlied@linux.ie \
--cc=bzolnier@gmail.com \
--cc=kernel-mentors@selenic.com \
--cc=linux-janitors@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paul@paulbristow.net \
--cc=philb@gnu.org \
--cc=trivial@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.