aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/module.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/module.c')
-rw-r--r--kernel/module.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/kernel/module.c b/kernel/module.c
index b8a1e313448c..e2564580f3f1 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -724,16 +724,8 @@ SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
724 return -EFAULT; 724 return -EFAULT;
725 name[MODULE_NAME_LEN-1] = '\0'; 725 name[MODULE_NAME_LEN-1] = '\0';
726 726
727 /* Create stop_machine threads since free_module relies on 727 if (mutex_lock_interruptible(&module_mutex) != 0)
728 * a non-failing stop_machine call. */ 728 return -EINTR;
729 ret = stop_machine_create();
730 if (ret)
731 return ret;
732
733 if (mutex_lock_interruptible(&module_mutex) != 0) {
734 ret = -EINTR;
735 goto out_stop;
736 }
737 729
738 mod = find_module(name); 730 mod = find_module(name);
739 if (!mod) { 731 if (!mod) {
@@ -793,8 +785,6 @@ SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
793 785
794 out: 786 out:
795 mutex_unlock(&module_mutex); 787 mutex_unlock(&module_mutex);
796out_stop:
797 stop_machine_destroy();
798 return ret; 788 return ret;
799} 789}
800 790