diff options
| author | Linus Torvalds <torvalds@home.transmeta.com> | 2002-11-16 22:25:51 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-11-16 22:25:51 -0800 |
| commit | d3131293a9b3e7328bf08bf3d27713af2bf928a8 (patch) | |
| tree | 535852ef4ea4acb24bc3504c002397406061d0ad | |
| parent | a21061828c8555eeb0c86370881105f94efa20ff (diff) | |
Initialize exception tables early - don't use an initcall,
since they are needed for early arch initialization.
Thanks to Manfred for pointing this out.
| -rw-r--r-- | init/main.c | 2 | ||||
| -rw-r--r-- | kernel/module.c | 6 |
2 files changed, 3 insertions, 5 deletions
diff --git a/init/main.c b/init/main.c index 39d3522d3750..f9230123ec87 100644 --- a/init/main.c +++ b/init/main.c @@ -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(); diff --git a/kernel/module.c b/kernel/module.c index 920cc7b184af..82aa7ebe6694 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -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); |
