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 <jsl...@suse.cz>
Cc: Samo Pogacnik <samo_pogac...@t-2.net>
---
 drivers/char/ttyprintk.c |    8 ++++----
 1 file 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:
-- 
1.7.10.4


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to