[PATCH 2/5] Char: istallion, move init and exit code

From: Jiri Slaby
Date: Sat Nov 11 2006 - 16:49:01 EST


istallion, move init and exit code

Let's have these function at the end of the driver and expand stli_init
directly into module_init fucntion, since there is nothing other to have
there.

Signed-off-by: Jiri Slaby <jirislaby@xxxxxxxxx>

---
commit d804883791d787b9c0bc0b79ccec78d0d20d850d
tree 8b3975ffcc507aeab7081767816ce66f191ce653
parent 2f1c6f8998c724f6b323dfc913a650f26cc02efa
author Jiri Slaby <jirislaby@xxxxxxxxx> Sat, 11 Nov 2006 01:41:37 +0100
committer Jiri Slaby <jirislaby@xxxxxxxxx> Sat, 11 Nov 2006 22:23:34 +0100

drivers/char/istallion.c | 113 +++++++++++++++++++++-------------------------
1 files changed, 52 insertions(+), 61 deletions(-)

diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c
index e835258..2de677f 100644
--- a/drivers/char/istallion.c
+++ b/drivers/char/istallion.c
@@ -595,7 +595,6 @@ #define MINOR2PORT(min) ((min) & 0x3f)
*/

static int stli_parsebrd(struct stlconf *confp, char **argp);
-static int stli_init(void);
static int stli_open(struct tty_struct *tty, struct file *filp);
static void stli_close(struct tty_struct *tty, struct file *filp);
static int stli_write(struct tty_struct *tty, const unsigned char *buf, int count);
@@ -744,65 +743,6 @@ static void stli_cleanup_ports(struct st
}
}

-/*
- * Loadable module initialization stuff.
- */
-
-static int __init istallion_module_init(void)
-{
- stli_init();
- return 0;
-}
-
-/*****************************************************************************/
-
-static void __exit istallion_module_exit(void)
-{
- struct stlibrd *brdp;
- unsigned int j;
- int i;
-
- printk(KERN_INFO "Unloading %s: version %s\n", stli_drvtitle,
- stli_drvversion);
-
- pci_unregister_driver(&stli_pcidriver);
- /*
- * Free up all allocated resources used by the ports. This includes
- * memory and interrupts.
- */
- if (stli_timeron) {
- stli_timeron = 0;
- del_timer_sync(&stli_timerlist);
- }
-
- i = tty_unregister_driver(stli_serial);
- put_tty_driver(stli_serial);
- for (j = 0; j < 4; j++)
- class_device_destroy(istallion_class, MKDEV(STL_SIOMEMMAJOR, j));
- class_destroy(istallion_class);
- if ((i = unregister_chrdev(STL_SIOMEMMAJOR, "staliomem")))
- printk("STALLION: failed to un-register serial memory device, "
- "errno=%d\n", -i);
-
- kfree(stli_txcookbuf);
-
- for (j = 0; (j < stli_nrbrds); j++) {
- if ((brdp = stli_brds[j]) == NULL || (brdp->state & BST_PROBED))
- continue;
-
- stli_cleanup_ports(brdp);
-
- iounmap(brdp->membase);
- if (brdp->iosize > 0)
- release_region(brdp->iobase, brdp->iosize);
- kfree(brdp);
- stli_brds[j] = NULL;
- }
-}
-
-module_init(istallion_module_init);
-module_exit(istallion_module_exit);
-
/*****************************************************************************/

/*
@@ -4601,10 +4541,14 @@ static const struct tty_operations stli_
};

/*****************************************************************************/
+/*
+ * Loadable module initialization stuff.
+ */

-static int __init stli_init(void)
+static int __init istallion_module_init(void)
{
int i;
+
printk(KERN_INFO "%s: version %s\n", stli_drvtitle, stli_drvversion);

spin_lock_init(&stli_lock);
@@ -4661,3 +4605,50 @@ static int __init stli_init(void)
}

/*****************************************************************************/
+
+static void __exit istallion_module_exit(void)
+{
+ struct stlibrd *brdp;
+ unsigned int j;
+ int i;
+
+ printk(KERN_INFO "Unloading %s: version %s\n", stli_drvtitle,
+ stli_drvversion);
+
+ pci_unregister_driver(&stli_pcidriver);
+ /*
+ * Free up all allocated resources used by the ports. This includes
+ * memory and interrupts.
+ */
+ if (stli_timeron) {
+ stli_timeron = 0;
+ del_timer_sync(&stli_timerlist);
+ }
+
+ i = tty_unregister_driver(stli_serial);
+ put_tty_driver(stli_serial);
+ for (j = 0; j < 4; j++)
+ class_device_destroy(istallion_class, MKDEV(STL_SIOMEMMAJOR, j));
+ class_destroy(istallion_class);
+ if ((i = unregister_chrdev(STL_SIOMEMMAJOR, "staliomem")))
+ printk("STALLION: failed to un-register serial memory device, "
+ "errno=%d\n", -i);
+
+ kfree(stli_txcookbuf);
+
+ for (j = 0; (j < stli_nrbrds); j++) {
+ if ((brdp = stli_brds[j]) == NULL || (brdp->state & BST_PROBED))
+ continue;
+
+ stli_cleanup_ports(brdp);
+
+ iounmap(brdp->membase);
+ if (brdp->iosize > 0)
+ release_region(brdp->iobase, brdp->iosize);
+ kfree(brdp);
+ stli_brds[j] = NULL;
+ }
+}
+
+module_init(istallion_module_init);
+module_exit(istallion_module_exit);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/