diff options
author | Jiri Slaby <jslaby@suse.cz> | 2012-08-07 21:47:40 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-08-10 13:29:57 -0700 |
commit | 536a3440a27f8687090bdf33468b003bc0f810cf (patch) | |
tree | 76f358685b2838f740df7e293101078177fa46e7 /drivers/char | |
parent | ee8b593affdf893012e57f4c54a21984d1b0d92e (diff) | |
download | op-kernel-dev-536a3440a27f8687090bdf33468b003bc0f810cf.zip op-kernel-dev-536a3440a27f8687090bdf33468b003bc0f810cf.tar.gz |
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')
-rw-r--r-- | drivers/char/ttyprintk.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/char/ttyprintk.c b/drivers/char/ttyprintk.c index 08755c5..be1c3fb 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: |