summaryrefslogtreecommitdiffstats
path: root/drivers/char/ttyprintk.c
diff options
context:
space:
mode:
authorJiri Slaby <jslaby@suse.cz>2012-08-07 21:47:40 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-08-10 13:29:57 -0700
commit536a3440a27f8687090bdf33468b003bc0f810cf (patch)
tree76f358685b2838f740df7e293101078177fa46e7 /drivers/char/ttyprintk.c
parentee8b593affdf893012e57f4c54a21984d1b0d92e (diff)
downloadlinux-536a3440a27f8687090bdf33468b003bc0f810cf.tar.gz
linux-536a3440a27f8687090bdf33468b003bc0f810cf.tar.bz2
linux-536a3440a27f8687090bdf33468b003bc0f810cf.zip
TTY: ttyprintk, initialize tty_port earlier
After tty_register_driver is called, it is too late to initialize a guy with which we operate in open. When a process already called open(2) on that node, the structures may be in use uninitialized. Move the initialization prior to tty_register_driver. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Cc: Samo Pogacnik <samo_pogacnik@t-2.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/char/ttyprintk.c')
-rw-r--r--drivers/char/ttyprintk.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/char/ttyprintk.c b/drivers/char/ttyprintk.c
index 08755c52fc5f..be1c3fb186c1 100644
--- a/drivers/char/ttyprintk.c
+++ b/drivers/char/ttyprintk.c
@@ -180,6 +180,10 @@ static int __init ttyprintk_init(void)
int ret = -ENOMEM;
void *rp;
+ tty_port_init(&tpk_port.port);
+ tpk_port.port.ops = &null_ops;
+ mutex_init(&tpk_port.port_write_mutex);
+
ttyprintk_driver = alloc_tty_driver(1);
if (!ttyprintk_driver)
return ret;
@@ -210,10 +214,6 @@ static int __init ttyprintk_init(void)
goto error;
}
- tty_port_init(&tpk_port.port);
- tpk_port.port.ops = &null_ops;
- mutex_init(&tpk_port.port_write_mutex);
-
return 0;
error: