]> git.hungrycats.org Git - linux/commitdiff
[PATCH] v850: Workaround for tty-driver init-order problem
authorAndrew Morton <akpm@osdl.org>
Wed, 22 Oct 2003 01:23:51 +0000 (18:23 -0700)
committerLinus Torvalds <torvalds@home.osdl.org>
Wed, 22 Oct 2003 01:23:51 +0000 (18:23 -0700)
From: miles@lsi.nec.co.jp (Miles Bader)

Use `late_initcall' instead of just `__initcall' as a workaround for
the fact that (1) simcons_tty_init can't be called before tty_init,
(2) tty_init is called via `module_init', (3) if statically linked,
module_init == device_init, and (4) there's no ordering of init lists.

We can do this easily because simcons is always statically linked, but
other tty drivers that depend on tty_init and which must use
`module_init' to declare their init routines are likely to be broken.

arch/v850/kernel/simcons.c

index c4996c89eeddd4d47b2f498390ebdcb7f7e2cdb9..9aed8871b8c5a4c06372a58692f9216af38c5c7a 100644 (file)
@@ -104,7 +104,14 @@ int __init simcons_tty_init (void)
        tty_driver = driver;
        return 0;
 }
-__initcall (simcons_tty_init);
+/* We use `late_initcall' instead of just `__initcall' as a workaround for
+   the fact that (1) simcons_tty_init can't be called before tty_init,
+   (2) tty_init is called via `module_init', (3) if statically linked,
+   module_init == device_init, and (4) there's no ordering of init lists.
+   We can do this easily because simcons is always statically linked, but
+   other tty drivers that depend on tty_init and which must use
+   `module_init' to declare their init routines are likely to be broken.  */
+late_initcall(simcons_tty_init);
 \f
 /* Poll for input on the console, and if there's any, deliver it to the
    tty driver.  */