X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=kernel%2Fmodule.c;h=e797812a4d95f164bb377447a62de3089c0ba182;hb=e18e37e50966f137f8a3b807fe0da7703779be34;hp=c268a771595c46cde09a5ac5bcf3d001082de6bf;hpb=22ae77bc7ac115b9d518d5cbc13d39317079b2b0;p=mv-sheeva.git diff --git a/kernel/module.c b/kernel/module.c index c268a771595..e797812a4d9 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -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);