aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2014-04-02 08:45:22 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-04-16 17:21:06 -0400
commitb24313a82cf24e90170671ea74360b3e6ef3a91f (patch)
treed0668a79aed447a520f453d2161abd858c4a87e7
parent7d1c2858c49095ab748f55354b89dbd6b18d28b9 (diff)
ttyprintk: Allow built as a module
The driver is well written to be used as a module, just the exit call is missing. Reviewed-by: Jean Delvare <jdelvare@suse.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/char/Kconfig2
-rw-r--r--drivers/char/ttyprintk.c13
2 files changed, 13 insertions, 2 deletions
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
index fbae63e3d304..6e9f74a5c095 100644
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
@@ -40,7 +40,7 @@ config SGI_MBCS
40source "drivers/tty/serial/Kconfig" 40source "drivers/tty/serial/Kconfig"
41 41
42config TTY_PRINTK 42config TTY_PRINTK
43 bool "TTY driver to output user messages via printk" 43 tristate "TTY driver to output user messages via printk"
44 depends on EXPERT && TTY 44 depends on EXPERT && TTY
45 default n 45 default n
46 ---help--- 46 ---help---
diff --git a/drivers/char/ttyprintk.c b/drivers/char/ttyprintk.c
index 2a39c5790364..a15ce4ef39cd 100644
--- a/drivers/char/ttyprintk.c
+++ b/drivers/char/ttyprintk.c
@@ -17,7 +17,7 @@
17#include <linux/device.h> 17#include <linux/device.h>
18#include <linux/serial.h> 18#include <linux/serial.h>
19#include <linux/tty.h> 19#include <linux/tty.h>
20#include <linux/export.h> 20#include <linux/module.h>
21 21
22struct ttyprintk_port { 22struct ttyprintk_port {
23 struct tty_port port; 23 struct tty_port port;
@@ -214,4 +214,15 @@ error:
214 tty_port_destroy(&tpk_port.port); 214 tty_port_destroy(&tpk_port.port);
215 return ret; 215 return ret;
216} 216}
217
218static void __exit ttyprintk_exit(void)
219{
220 tty_unregister_driver(ttyprintk_driver);
221 put_tty_driver(ttyprintk_driver);
222 tty_port_destroy(&tpk_port.port);
223}
224
217device_initcall(ttyprintk_init); 225device_initcall(ttyprintk_init);
226module_exit(ttyprintk_exit);
227
228MODULE_LICENSE("GPL");