|
@@ -3107,7 +3107,7 @@ static noinline int do_init_module(struct module *mod)
|
|
|
*
|
|
|
* http://thread.gmane.org/gmane.linux.kernel/1420814
|
|
|
*/
|
|
|
- if (current->flags & PF_USED_ASYNC)
|
|
|
+ if (!mod->async_probe_requested && (current->flags & PF_USED_ASYNC))
|
|
|
async_synchronize_full();
|
|
|
|
|
|
mutex_lock(&module_mutex);
|
|
@@ -3240,8 +3240,16 @@ out:
|
|
|
static int unknown_module_param_cb(char *param, char *val, const char *modname,
|
|
|
void *arg)
|
|
|
{
|
|
|
+ struct module *mod = arg;
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ if (strcmp(param, "async_probe") == 0) {
|
|
|
+ mod->async_probe_requested = true;
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
/* Check for magic 'dyndbg' arg */
|
|
|
- int ret = ddebug_dyndbg_module_param_cb(param, val, modname);
|
|
|
+ ret = ddebug_dyndbg_module_param_cb(param, val, modname);
|
|
|
if (ret != 0)
|
|
|
pr_warn("%s: unknown parameter '%s' ignored\n", modname, param);
|
|
|
return 0;
|