提交 de96d79f 编写于 作者: A Andrey Tsyvarev 提交者: Rusty Russell

kernel/module.c: Free lock-classes if parse_args failed

parse_args call module parameters' .set handlers, which may use locks defined in the module.
So, these classes should be freed in case parse_args returns error(e.g. due to incorrect parameter passed).
Signed-off-by: NAndrey Tsyvarev <tsyvarev@ispras.ru>
Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
上级 5d8591bc
......@@ -3356,6 +3356,9 @@ static int load_module(struct load_info *info, const char __user *uargs,
module_bug_cleanup(mod);
mutex_unlock(&module_mutex);
/* Free lock-classes: */
lockdep_free_key_range(mod->module_core, mod->core_size);
/* we can't deallocate the module until we clear memory protection */
unset_module_init_ro_nx(mod);
unset_module_core_ro_nx(mod);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册