diff options
Diffstat (limited to 'kernel/module.c')
| -rw-r--r-- | kernel/module.c | 22 | 
1 files changed, 6 insertions, 16 deletions
diff --git a/kernel/module.c b/kernel/module.c index 1016b75b026a..e2564580f3f1 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -59,8 +59,6 @@  #define CREATE_TRACE_POINTS  #include <trace/events/module.h> -EXPORT_TRACEPOINT_SYMBOL(module_get); -  #if 0  #define DEBUGP printk  #else @@ -515,6 +513,9 @@ MODINFO_ATTR(srcversion);  static char last_unloaded_module[MODULE_NAME_LEN+1];  #ifdef CONFIG_MODULE_UNLOAD + +EXPORT_TRACEPOINT_SYMBOL(module_get); +  /* Init the unload section of the module. */  static void module_unload_init(struct module *mod)  { @@ -723,16 +724,8 @@ SYSCALL_DEFINE2(delete_module, const char __user *, name_user,  		return -EFAULT;  	name[MODULE_NAME_LEN-1] = '\0'; -	/* Create stop_machine threads since free_module relies on -	 * a non-failing stop_machine call. */ -	ret = stop_machine_create(); -	if (ret) -		return ret; - -	if (mutex_lock_interruptible(&module_mutex) != 0) { -		ret = -EINTR; -		goto out_stop; -	} +	if (mutex_lock_interruptible(&module_mutex) != 0) +		return -EINTR;  	mod = find_module(name);  	if (!mod) { @@ -792,8 +785,6 @@ SYSCALL_DEFINE2(delete_module, const char __user *, name_user,   out:  	mutex_unlock(&module_mutex); -out_stop: -	stop_machine_destroy();  	return ret;  } @@ -867,8 +858,7 @@ void module_put(struct module *module)  		smp_wmb(); /* see comment in module_refcount */  		__this_cpu_inc(module->refptr->decs); -		trace_module_put(module, _RET_IP_, -				 __this_cpu_read(module->refptr->decs)); +		trace_module_put(module, _RET_IP_);  		/* Maybe they're waiting for us to drop reference? */  		if (unlikely(!module_is_live(module)))  			wake_up_process(module->waiter);  |