]> git.neil.brown.name Git - history.git/commitdiff
Initialize exception tables early - don't use an initcall,
authorLinus Torvalds <torvalds@home.transmeta.com>
Sun, 17 Nov 2002 06:25:51 +0000 (22:25 -0800)
committerLinus Torvalds <torvalds@home.transmeta.com>
Sun, 17 Nov 2002 06:25:51 +0000 (22:25 -0800)
since they are needed for early arch initialization.

Thanks to Manfred for pointing this out.

init/main.c
kernel/module.c

index 39d3522d3750685f38038112a2777f03a616eb8d..f9230123ec879c2a5344be0b6f87b38c2bb6f58c 100644 (file)
@@ -63,6 +63,7 @@ extern void init_IRQ(void);
 extern void init_modules(void);
 extern void sock_init(void);
 extern void fork_init(unsigned long);
+extern void extable_init(void);
 extern void mca_init(void);
 extern void sbus_init(void);
 extern void sysctl_init(void);
@@ -394,6 +395,7 @@ asmlinkage void __init start_kernel(void)
        printk("Kernel command line: %s\n", saved_command_line);
        parse_options(command_line);
        trap_init();
+       extable_init();
        rcu_init();
        init_IRQ();
        sched_init();
index 920cc7b184afdd26144fc9b41a04385d0b29c4e5..82aa7ebe6694f363ee0aa276d260989f8b055245 100644 (file)
@@ -1188,7 +1188,7 @@ struct seq_operations modules_op = {
        .show   = m_show
 };
 
-static int __init init(void)
+void __init extable_init(void)
 {
        /* Add kernel symbols to symbol table */
        kernel_symbols.num_syms = (__stop___ksymtab - __start___ksymtab);
@@ -1199,12 +1199,8 @@ static int __init init(void)
        kernel_extable.num_entries = (__stop___ex_table -__start___ex_table);
        kernel_extable.entry = __start___ex_table;
        list_add(&kernel_extable.list, &extables);
-       return 0;
 }
 
 /* Obsolete lvalue for broken code which asks about usage */
 int module_dummy_usage = 1;
 EXPORT_SYMBOL(module_dummy_usage);
-
-/* Call this at boot */
-__initcall(init);