]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - kernel/module.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6
[mv-sheeva.git] / kernel / module.c
index c268a771595c46cde09a5ac5bcf3d001082de6bf..e797812a4d95f164bb377447a62de3089c0ba182 100644 (file)
@@ -1952,9 +1952,6 @@ static noinline struct module *load_module(void __user *umod,
                if (strstarts(secstrings+sechdrs[i].sh_name, ".exit"))
                        sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC;
 #endif
-               /* Don't keep __versions around; it's just for loading. */
-               if (strcmp(secstrings + sechdrs[i].sh_name, "__versions") == 0)
-                       sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC;
        }
 
        modindex = find_sec(hdr, sechdrs, secstrings,
@@ -2391,6 +2388,9 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
        blocking_notifier_call_chain(&module_notify_list,
                                     MODULE_STATE_LIVE, mod);
 
+       /* We need to finish all async code before the module init sequence is done */
+       async_synchronize_full();
+
        mutex_lock(&module_mutex);
        /* Drop initial reference. */
        module_put(mod);