Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[sfrench/cifs-2.6.git] / kernel / module.c
index ccdf24c4949e0246bcda5daa82f323c443e95a1c..ad2d420024f6d01086f07b47e60fd1fbde0ff1dc 100644 (file)
@@ -3804,6 +3804,7 @@ static int load_module(struct load_info *info, const char __user *uargs,
        module_disable_nx(mod);
 
  ddebug_cleanup:
+       ftrace_release_mod(mod);
        dynamic_debug_remove(mod, info->debug);
        synchronize_sched();
        kfree(mod->args);
@@ -3823,12 +3824,6 @@ static int load_module(struct load_info *info, const char __user *uargs,
        synchronize_sched();
        mutex_unlock(&module_mutex);
  free_module:
-       /*
-        * Ftrace needs to clean up what it initialized.
-        * This does nothing if ftrace_module_init() wasn't called,
-        * but it must be called outside of module_mutex.
-        */
-       ftrace_release_mod(mod);
        /* Free lock-classes; relies on the preceding sync_rcu() */
        lockdep_free_key_range(mod->core_layout.base, mod->core_layout.size);